2016-12-07 10 views
1

私は考えていましたが、しばらく読んでいましたが、これまでのところ解決策が見つかりませんでした。私の問題は、私は、私はそれが正しいかどうかさえわからないリストリストの中の辞書からデータを取得する

goodsandprices = [{'good': 'apple', 'price': 10}, {'good': 'pear', 'price': 20}, {'good': 'orange', 'price': 25}, {'good': 'plum', 'price': 15}, {'good': 'wine', 'ar': 40}] 

にいくつかの辞書を持っている、ある、よく私のプログラムはそれについて大騒ぎをしませんでした。私の意図は、 "価格"キーを持つすべてのデータを収集し、その最小値を取得することです。私の最初の推測はのようだった

min(goodsandprices['price'])) 

しかし、これは私にエラーを与えた。これを行う方法を教えてください。

+0

'商品と配送料のiの分(i ['price'])' –

答えて

2

あなただけの最小price値を持つメンバーをしたい場合は、あなたができる:コールバック機能付き

print min(goodsandprices, key=lambda _:_["price"]) 
1

使用min(iterable, *[, key, default])機能key引数として:

goodsandprices = [{'good': 'apple', 'price': 10}, {'good': 'pear', 'price': 20}, {'good': 'orange', 'price': 25}, {'good': 'plum', 'price': 15}, {'good': 'wine', 'ar': 40}] 
result = min(goodsandprices, key=lambda x: getattr(x, 'price', 0)) 

print(result['price']) 

出力:

10 
0
goodsandprices = [{'good': 'apple', 'price': 10}, {'good': 'pear', 'price': 20}, {'good': 'orange', 'price': 25}, {'good': 'plum', 'price': 15}, {'good': 'wine', 'ar': 40}]  
key = 'price' 
arr1 = [] 

for item in goodsandprices: 
    if key in item: 
     arr1.append(item['price']) 


print min(arr1) 
関連する問題