2016-12-07 4 views
1

Ich habe eine Weile nachgedacht und gelesen, aber bis jetzt habe ich keine Lösung gefunden. Mein Problem ist, ich habe einige Wörterbücher in einer ListeDaten aus Wörterbüchern in Listen abrufen Python

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

ich nicht einmal sicher bin, ob es richtig ist, auch mein Programm nicht viel Aufhebens davon machen. Meine Absicht ist, alle Daten zu sammeln, die "Preis" Schlüssel haben, und den minimalen Wert davon zu erhalten. Meine erste Schätzung war wie

min(goodsandprices['price'])) 

aber das gab mir einen Fehler. Könnten Sie mir einen Tipp geben, wie Sie das machen?

+0

'min (i ['price'] für i in goodsandprices)' –

Antwort

2

Wenn Sie nur das Element mit dem kleinsten price Wert möchten, können Sie tun:

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

Verwenden min(iterable, *[, key, default]) Funktion mit einer Callback-Funktion als key Argument:

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']) 

Der Ausgang:

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) 
Verwandte Themen