Spicyrookie 2023-01-10 00:02 采纳率: 100%
浏览 14
已结题

Python数组按大小分行输出

景区人气排行榜

怎么把各景区人气按大小分行输出

p1={"id":'八达岭长城风景名胜区','kind':'fengjing','price':'75','region':'延庆区','mark':'502'}
p2={"id":'北京市奥林匹克公园','kind':'xiuxian','price':'45','region':'朝阳区','mark':'325'}
p3={"id":'恭王府','kind':'xiaofei','price':'128','region':'西城区','mark':'514'}
p4={"id":'故宫博物院','kind':'lishi','price':'75','region':'东城区','mark':'552'}
p5={"id":'慕田峪长城','kind':'fengjing','price':'45','region':'怀柔区','mark':'322'}
point=[p1,p2,p3,p4,p5]
def adminwork():
    over = "结束"
    print('==========Welcome! The Greatest Administrator===========')
    info='''
    ==========欢迎来到旅游推荐系统==========
         输入功能编号,你可以选择相应的功能:
         输入“1”:查看人气排行榜

========================================
    '''
    print(info)
    while True:
        code = input("请输入功能编号:")
        if code == "1":
            rank()
def rank():
    for p in point:
        Rank=[int(p['mark'])]
        a=sorted(Rank,reverse=True)
        print((p["id"]),(a))
adminwork()

输出结果未按照大小排序

我不太理解 a=sorted(Rank,reverse=True)为什么不起作用。我尝试用另一种方法for循环语句去逐一比较,但感觉工作量很大,且不知道如何在多个景区中相互比较并且输出最终排序结果。

我想让输出结果按照数字大小排序,输出的形式是景区的id+景区的mark

  • 写回答

2条回答 默认 最新

  • m0_54204465 2023-01-10 07:43
    关注

    可以这样改一下你的代码:

    def rank():
    # 将景区人气按照mark的大小排序,sorted函数返回的是一个新的排序后的列表,不会对原来的point列表造成影响
    sorted_points = sorted(point, key=lambda p: int(p['mark']), reverse=True)
    # 使用循环遍历排序后的列表,输出每个景区的id和mark
    for p in sorted_points:
    print(f"{p['id']}: {p['mark']}")
    
    adminwork()
    
    

    这样,rank函数就可以按照你的需求输出景区人气排行榜了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月18日
  • 已采纳回答 1月10日
  • 创建了问题 1月10日

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探