2301_77800349 2024-06-14 16:40 采纳率: 33.3%
浏览 1

现有几位唐朝著名诗人及其诗作数量记录为以下字典《杜牧!:511,'白居易:2741,李白::982,'李商险:535,杜甫:1170},按照诗作数量从大到小排序并显示。

现有几位唐朝著名诗人及其诗作数量记录为以下字典《杜牧!:511,'白居易:2741,李白::982,'李商险:535,杜甫:1170}

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-06-14 16:40
    关注

    引自免费微信小程序:皆我百晓生

    要解决这个问题,首先需要纠正字典格式中的错误,例如多余的感叹号和重复的逗号。接下来,使用Python的内置函数sorted()对字典进行排序,可以基于字典的值(诗作数量)进行降序排列。以下是具体的实现步骤和代码:

    # 定义诗人及其诗作数量的字典
    poets_works = {'杜牧': 511, '白居易': 2741, '李白': 982, '李商隐': 535, '杜甫': 1170}
    
    # 使用sorted()函数和lambda表达式按诗作数量降序排序
    sorted_poets_works = sorted(poets_works.items(), key=lambda item: item[1], reverse=True)
    
    # 打印排序后的结果
    for poet, works in sorted_poets_works:
        print(f'{poet}: {works}')
    

    这段代码首先定义了一个包含诗人和其诗作数量的字典poets_works。然后,使用sorted()函数对字典项进行排序,其中key参数指定了排序依据是字典项的第二个元素(即诗作数量),reverse=True表示按降序排序。最后,通过循环遍历排序后的列表,打印出每位诗人及其诗作数量。

    运行上述代码,你将得到按诗作数量从多到少排序的诗人列表。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月14日