Ich habe eine Liste von Wörterbüchern wie folgt:
[{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]
Ich möchte die min () und max () Preise finden. Jetzt kann ich dies einfach genug mit einem Schlüssel mit einem Lambda-Ausdruck sortieren (wie in einem anderen SO-Artikel zu finden). Wenn es also keinen anderen Weg gibt, stecke ich nicht fest. Nach dem, was ich gesehen habe, gibt es in Python fast immer einen direkten Weg, daher ist dies eine Gelegenheit für mich, ein bisschen mehr zu lernen.
seq
und die Liste groß ist, kann dies ineffizient sein, da der Speicher für die gesamte Liste zugewiesen werden muss, um die max.AttributeError: module 'sys' has no attribute 'maxint'
Hier erfahren Sie nicht nur, wie hoch der Höchstpreis ist, sondern auch, welcher Artikel am teuersten ist.
quelle
Ich denke, der direkteste (und pythonischste) Ausdruck wäre so etwas wie:
Dadurch wird der Aufwand für das Sortieren der Liste vermieden - und durch die Verwendung eines Generatorausdrucks anstelle eines Listenverständnisses wird auch das Erstellen von Listen vermieden. Effizient, direkt, lesbar ... Pythonic!
quelle
Eine Antwort würde Abbildung Ihrer dicts auf den Wert von Interesse innerhalb eines Generators Ausdruck, und dann die Anwendung der Einbauten
min
undmax
.quelle
[
und umgeben und]
generieren als Zwischenschritt eine Python-Liste.kann auch Folgendes verwenden:
quelle