die Verwendung von python list comprehension zu aktualisieren Wörterbuch-Wert
Habe ich eine Liste von Wörterbüchern und möchte aktualisieren Sie den Wert für den Schlüssel "Preis" mit 0, wenn die Taste Preis Wert ist gleich "
data=[a['price']=0 for a in data if a['price']=='']
Ist es möglich soetwas zu machen? Ich habe versucht auch mit
a.update({'price':0})
aber nicht so gut funktionieren...
- Sie können nicht
data=[a['price']=0 for a in data if a['price']=='']
, dies ist für die Identifizierung einer Liste, nicht, es zu ändern.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuweisungen sind Anweisungen und Aussagen sind nicht verwendbar in Liste Verstehens. Verwenden Sie einfach eine normale for-Schleife:
Und der Vollständigkeit halber, können Sie auch diese Greuel (aber das bedeutet nicht, Sie sollten):
None
Verweise, dann ablegen, wieder in die Liste nach rechts. Das ist eine Verschwendung von Zyklen und Speicher. Liste Verstehens sollte nur verwendet werden, , wenn Sie eine Liste erstellen-Objekt, nicht als Ersatz fürfor
Schleifen im Allgemeinen.Es ist eine schlechte Praxis, aber möglich:
Den Fällen, in denen es keinen Schlüssel "Preis" erfolgt und der Preis ist festgelegt
0
wennp["price"]
istFalse
ist, wird eine leere Zeichenfolge oder einen beliebigen anderen Wert, dass python Auffassung alsFalse
.Beachten Sie, dass die Liste Verständnis gibt Müll wie
[None]
.None
Verweise, dann ablegen, wieder in die Liste nach rechts. Das ist eine Verschwendung von Zyklen und Speicher. Liste Verstehens sollte nur verwendet werden, , wenn Sie eine Liste erstellen-Objekt, nicht als Ersatz fürfor
Schleifen im Allgemeinen.