在Python中如何轻松获取字典中的排序项?
字典和列表不一样,字典里的内容是没有顺序的(也没有“排序”的功能)。所以,你不能指望每次添加的内容都能以相同的顺序取出来。
那么,有什么简单的方法可以遍历一个字典,里面的键是字符串,并且按照键的升序来获取这些键呢?
比如,你有这样的内容:
d = {'b' : 'this is b', 'a': 'this is a' , 'c' : 'this is c'}
我想按照键的顺序打印出相关的值,顺序如下:
this is a
this is b
this is c
8 个回答
2
这个代码片段可以解决问题。如果你经常需要这样做,可能想要创建一个叫做 'sortkeys' 的方法,这样看起来会更清晰。
keys = list(d.keys())
keys.sort()
for key in keys:
print d[key]
补充:dF的解决方案更好——我完全忘记了 sorted()
这个函数。
16
或者更简短一些,
for key, value in sorted(d.items()):
print value
17
你的意思是你需要根据键的值来排序吗?如果是这样的话,下面的代码应该可以做到:
for key in sorted(d):
print d[key]
编辑:我把代码改成用 sorted(d) 而不是 sorted(d.keys()) 了,感谢 Eli!