有没有简单的一行代码可以获取字典中按顺序排列的键列表?

5 投票
3 回答
7707 浏览
提问于 2025-04-11 20:13

列表的 sort() 方法是一个修改器函数,它不会返回任何值,返回的是 None

所以,如果我想要遍历字典中的所有键,我不能这样做:

for k in somedictionary.keys().sort():
    dosomething()

相反,我必须这样做:

keys = somedictionary.keys()
keys.sort()
for k in keys:
    dosomething()

有没有一种简单的方法可以按顺序遍历这些键,而不需要分成多个步骤呢?

3 个回答

7

其实,.keys() 这个方法并不是必须的:

for k in sorted(somedictionary):
    doSomething(k)

或者

[doSomethinc(k) for k in sorted(somedict)]
8

我可以回答我自己的问题吗?

我刚刚发现了一个非常实用的函数“sorted”,它正好满足了我的需求。

for k in sorted(somedictionary.keys()):
    dosomething()

这个函数在这个链接中出现过:Python 2.5 字典按两个键排序

22
for k in sorted(somedictionary.keys()):
    doSomething(k)

请注意,你还可以像这样获取所有的键和值,并按照键的顺序进行排序:

for k, v in sorted(somedictionary.iteritems()):
   doSomething(k, v)

撰写回答