【问题标题】:How do I print a sorted Dictionary in Python 3.4.3如何在 Python 3.4.3 中打印排序字典
【发布时间】:2016-06-07 04:56:02
【问题描述】:

我正在为我的 GCSE 部分学习,其中要求我打印一个按字母顺序排序的字典,并且打印应该包含相关的值。

我花了几个小时试图找到这个问题的答案,并查看了这个论坛上的各种帖子,但对于我有限的知识来说,大多数帖子都太复杂了。

我可以打印按字母顺序排序的键,我可以打印已排序的值,但不能打印按字母顺序排序的键和附加的值。

这是我的简单测试代码

class1 = { 'Ethan':'9','Ian':'3','Helen':'8','Holly':'6' } # create dictionary

print(sorted(class1)) # prints sorted Keys
print(sorted(class1.values())) # Prints sorted values

我需要打印带有值的排序键 - 怎么做?

for k,v in class1.items():
    print(k,v)  # prints out in the format I want but not alphabetically sorted

【问题讨论】:

    标签: python python-3.x dictionary printing


    【解决方案1】:
    class1 = { 'Ethan':'9','Ian':'3','Helen':'8','Holly':'6' }
    class1_keys = class1.keys()
    class1_keys.sort()
    for i in class1_keys:
            print(i,class1[i])
    Ethan 9
    Helen 8
    Holly 6
    Ian 3
    

    【讨论】:

      【解决方案2】:
      >>> class1 = { 'Ethan':'9','Ian':'3','Helen':'8','Holly':'6' }
      >>> print(sorted(class1.items()))
      [('Ethan', '9'), ('Helen', '8'), ('Holly', '6'), ('Ian', '3')]
      

       

      >>> for k,v in sorted(class1.items()):
      ...     print(k, v)
      ...
      Ethan 9
      Helen 8
      Holly 6
      Ian 3
      

       

      >>> for k,v in sorted(class1.items(), key=lambda p:p[1]):
      ...     print(k,v)
      ...
      Ian 3
      Holly 6
      Helen 8
      Ethan 9
      
      >>> for k,v in sorted(class1.items(), key=lambda p:p[1], reverse=True):
      ...     print(k,v)
      ...
      Ethan 9
      Helen 8
      Holly 6
      Ian 3
      

      【讨论】:

      • 谢谢。我该怎么做才能将其打印为页面下方的列表而没有括号等? for k,v in class1.items(): print(k,v) # 以我想要的格式打印出来,但不按字母顺序排序。
      • 太棒了。我知道这很简单,但我无法理解它。非常感谢凯文。
      • 我测试了这段代码。但是,它似乎是按键而不是按值对字典进行排序。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-12
      • 2015-07-05
      • 2019-06-27
      • 2021-12-02
      • 2012-06-29
      • 1970-01-01
      相关资源
      最近更新 更多