在Python中如何轻松获取字典中的排序项?

12 投票
8 回答
1342 浏览
提问于 2025-04-11 09:16

字典和列表不一样,字典里的内容是没有顺序的(也没有“排序”的功能)。所以,你不能指望每次添加的内容都能以相同的顺序取出来。

那么,有什么简单的方法可以遍历一个字典,里面的键是字符串,并且按照键的升序来获取这些键呢?

比如,你有这样的内容:

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

撰写回答