2016-06-13 45 views
-2

的陣列最大值我有這樣的數組:如何找到在詞典

[{'name': 'Chrysanthemum.jpg', 'number': 100.0}, {'name': 'Desert.jpg', 'number' 
: 30.917470438414448}, {'name': 'Hydrangeas.jpg', 'number': 15.429520638195438}, 
{'name': 'Jellyfish.jpg', 'number': 21.331146972809318}, {'name': 'Koala.jpg', 
'number': 20.341379328776572}, {'name': 'Lighthouse.jpg', 'number': 34.424389703 
830229}, {'name': 'Penguins.jpg', 'number': 25.6503594785}, {'name': 'Tulip 
s.jpg', 'number': 23.827037756867568}] 

現在我想找到一個項目,其其編號爲最大。任何想法?

+1

什麼是預期的o utput是?你有沒有嘗試過自己呢? –

回答

2

你可以只使用max使用operator.itemgetter用於提取數

from operator import itemgetter 
max_item = max(l, key=itemgetter('number')) 
print(max_item) 

輸出自定義鍵:

{'name': 'Chrysanthemum.jpg', 'number': 100.0} 
0
max(d['number'] for d in Array_dict) 

輸出:

100.0 

如果項目:

max(Array_dict, key=lambda x:x['number']) 

輸出:

{'name': 'Chrysanthemum.jpg', 'number': 100.0} 
+0

他們希望具有最高「數字」值的項目(字典),而不僅僅是最高值。 –

0

如果你的字典裏將定期結構,就像你如上圖所示,那麼這應該是實現一個簡單的方法,你需要的東西:

max(d['number'] for d in dictionary_list)

0
dd = [{'name': 'Chrysanthemum.jpg', 'number': 100.0}, {'name': 'Desert.jpg', 'number' : 30.917470438414448}, {'name': 'Hydrangeas.jpg', 'number': 15.429520638195438}, {'name': 'Jellyfish.jpg', 'number': 21.331146972809318}, {'name': 'Koala.jpg', 'number': 20.341379328776572}, {'name': 'Lighthouse.jpg', 'number': 34.424389703830229}, {'name': 'Penguins.jpg', 'number': 25.6503594785}, {'name': 'Tulips.jpg', 'number': 23.827037756867568}] 
lst = [] 
[lst.append(l.values()[1]) for l in dd] 
max_no = max(lst) 

for item in dd: 
    if item['number'] == max_no: 
    print item 
    break