列表sort()
方法是一个返回None
的修饰符函数。
因此,如果我想迭代字典中的所有键,我就无法做到:
for k in somedictionary.keys().sort():
dosomething()
相反,我必须:
keys = somedictionary.keys()
keys.sort()
for k in keys:
dosomething()
有没有一种很好的方法可以按排序顺序迭代这些键,而不必将其分解为多个步骤?
答案 0 :(得分:19)
for k in sorted(somedictionary.keys()):
doSomething(k)
请注意,您还可以获取按键排序的所有键和值:
for k, v in sorted(somedictionary.iteritems()):
doSomething(k, v)
答案 1 :(得分:7)
我可以回答我自己的问题吗?
我刚刚发现了一个方便的功能“已排序”,这正是我所寻找的。 p>
for k in sorted(somedictionary.keys()): dosomething()中
答案 2 :(得分:6)
实际上,没有必要使用.keys():
for k in sorted(somedictionary):
doSomething(k)
或
[doSomethinc(k) for k in sorted(somedict)]