Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich ein Wörterbuch basierend auf beliebigen Bedingungen in Python effizient filtern?

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

Patricia Arquette
Patricia ArquetteOriginal
2024-11-16 10:15:03796Durchsuche

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)}

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!

Stellungnahme:
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