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

Pyt*_*ewb -1 python printing dictionary python-3.x

我正在为我的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
Run Code Online (Sandbox Code Playgroud)

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

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

Kev*_*vin 13

>>> class1 = { 'Ethan':'9','Ian':'3','Helen':'8','Holly':'6' }
>>> print(sorted(class1.items()))
[('Ethan', '9'), ('Helen', '8'), ('Holly', '6'), ('Ian', '3')]
Run Code Online (Sandbox Code Playgroud)

 

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

 

>>> 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
Run Code Online (Sandbox Code Playgroud)