有没有简单的一行代码可以获取字典中按顺序排列的键列表?
列表的 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)