如何在Python 3.4.3中打印排序的字典

时间:2016-02-24 18:20:17

标签: python python-3.x dictionary printing

我正在学习我的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

2 个答案:

答案 0 :(得分:10)

>>> 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

答案 1 :(得分:0)

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