2008-11-29 30 views
3

列表sort()方法是一個修飾符函數,返回None有沒有一種「單行」的方式來按照排序順序從字典中獲取鍵列表?

所以,如果我想通過所有字典的鍵來遍歷我不能這樣做:

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

相反,我必須:

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

是否有通過這些迭代一個漂亮的方式鍵排序順序,而不必分解成多個步驟?

回答

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

請注意,您還可以得到所有關鍵字排序是這樣的鍵和值:

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

我可以回答我自己的問題嗎?

我剛剛發現了「排序」的方便函數,它正是我所期待的。

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

它顯示了在Python 2.5 dictionary 2 key sort

6

其實,.keys()不是必需的:

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

[doSomethinc(k) for k in sorted(somedict)] 
相關問題