2012-07-16 153 views
0

我有一個關於在字典上編寫代碼的問題,我已經完成了編碼,但是我對一個部分感到困惑,這就是它所說的參數名稱是sort_by_value:「({immutable_type的字典: int)} - > list「,並且描述是」返回字典中按照它們的值升序排列的鍵的列表,具有相同值的鍵可能按任意順序排序「python編寫代碼的字典幫助

和我的代碼寫是

def sort_by_value(dict): 
     """ 
     (dict of {immutable_type:int}) -> list """ 
     L = [] 
     for x in dict.values(): 
      L.append(x) 
     L.sort() 
     print L 

這個代碼上升它的價值只喜歡說,如果我有一本字典

nd = {} 
    nd['john'] = 109090 
    nd['albert'] = 1900 
    nd['Tim'] = 18000 
    sort_by_value(nd) 

我得到的名單[1900,18000,109090],但我需要與這些值相關聯的鍵像我想要[「偉業」,「添」,「約翰」]

我做嘗試給它一個嘗試,並試圖引入另一個for循環 權利之前打印李想寫

keyList= [] 

    for x in L: 
     keyList.append(dict.get()) 
     if 

,但我不知道這是否會工作,請需要helppp

回答

1

您可以使用內置的分類函數來排序元組那本字典。

nd = {} 
nd['john'] = 109090 
nd['albert'] = 1900 
nd['Tim'] = 18000 

print sorted(nd.items(), key=lambda x: x[1]) 

將返回:

[('albert', 1900), ('Tim', 18000), ('john', 109090)] 

,如果你想只得到鍵:

print map(lambda x: x[0], sorted(nd.items(), key=lambda x: x[1])) 

會給你:

['albert', 'Tim', 'john'] 

參見:http://wiki.python.org/moin/HowTo/Sorting/

+0

嗯,你百分之百的權利,你介意解釋一下更多關於這個代碼我用 – MathGeek 2012-07-16 01:12:07

+0

和排序和地圖之間的區別是什麼? – MathGeek 2012-07-16 01:14:34

+1

所有的解釋都在這裏:http://docs.python.org/library/functions.html – Takahiro 2012-07-16 01:20:12