是否有"单行"方式从排序顺序获取字典中的键列表?

Hug*_*ugh 3 python iterator syntactic-sugar

list sort()方法是一个返回的修饰符函数None.

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

for k in somedictionary.keys().sort():
    dosomething()
Run Code Online (Sandbox Code Playgroud)

相反,我必须:

keys = somedictionary.keys()
keys.sort()
for k in keys:
    dosomething()
Run Code Online (Sandbox Code Playgroud)

有没有一种很好的方法可以按排序顺序迭代这些键,而不必将其分解为多个步骤?

Dus*_*tin 19

for k in sorted(somedictionary.keys()):
    doSomething(k)
Run Code Online (Sandbox Code Playgroud)

请注意,您还可以获取按键排序的所有键和值,如下所示:

for k, v in sorted(somedictionary.iteritems()):
   doSomething(k, v)
Run Code Online (Sandbox Code Playgroud)


Hug*_*ugh 7

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

我刚刚发现了一个方便的功能"排序",它完全符合我的要求.

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

它出现在Python 2.5字典2键排序中


odw*_*dwl 7

实际上,.keys()不是必需的:

for k in sorted(somedictionary):
    doSomething(k)
Run Code Online (Sandbox Code Playgroud)

要么

[doSomethinc(k) for k in sorted(somedict)]
Run Code Online (Sandbox Code Playgroud)