Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich ein Wörterbuch basierend auf beliebigen Bedingungen in Python effizient filtern?
Wörterbücher mit willkürlichen Bedingungen filtern
Wörterbücher bieten eine leistungsstarke Möglichkeit zum Organisieren und Speichern von Daten in Python. Es besteht jedoch häufig die Notwendigkeit, bestimmte Elemente basierend auf bestimmten Bedingungen herauszufiltern.
Stellen Sie sich ein Szenario vor, in dem Sie über ein Wörterbuch von Punkten mit Koordinaten (x, y) verfügen:
points = {'a': (3, 4), 'b': (1, 2), 'c': (5, 5), 'd': (3, 3)}
Um ein neues Wörterbuch zu erstellen, das Punkte mit x- und y-Werten kleiner als 5 enthält, könnten Sie zunächst einen schleifenbasierten Ansatz versuchen:
for item in [i for i in points.items() if i[1][0] < 5 and i[1][1] < 5]: points_small[item[0]] = item[1]
Es gibt jedoch eine elegantere und prägnantere Lösung, die Diktatverständnisse verwendet:
Python 3:
points_small = {k: v for k, v in points.items() if v[0] < 5 and v[1] < 5}
Python 2 (2.7):
points_small = {k: v for k, v in points.iteritems() if v[0] < 5 and v[1] < 5}
Diktverständnisse bieten eine prägnante und lesbare Syntax zum Filtern von Wörterbuchelementen. Sie können die Wartbarkeit und Leistung des Codes im Vergleich zu herkömmlichen schleifenbasierten Ansätzen erheblich verbessern.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Wörterbuch basierend auf beliebigen Bedingungen in Python effizient filtern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!