Wie kann ich ein Wörterbuch basierend auf beliebigen Bedingungen in Python effizient filtern?

Patricia Arquette
Freigeben: 2024-11-16 10:15:03
Original
797 Leute haben es durchsucht

How can I efficiently filter a dictionary based on arbitrary conditions in Python?

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)}
Nach dem Login kopieren

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]
Nach dem Login kopieren

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}
Nach dem Login kopieren

Python 2 (2.7):

points_small = {k: v for k, v in points.iteritems() if v[0] < 5 and v[1] < 5}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage