Heim > Artikel > Backend-Entwicklung > Wie filtere ich ein Wörterbuch mithilfe einer Bedingungsfunktion in Python?
Filtern eines Wörterbuchs mithilfe einer Bedingungsfunktion
Python-Wörterbücher, die bei Datenbearbeitungsaufgaben allgegenwärtig sind, bieten eine leistungsstarke Möglichkeit zum Speichern und Abrufen von Informationen auf Schlüsseln. Es kann jedoch vorkommen, dass Sie eine Teilmenge des Wörterbuchinhalts anhand bestimmter Kriterien extrahieren müssen. Sehen wir uns ein Beispiel an, in dem wir ein Wörterbuch filtern möchten, um Punkte auszuwählen, deren x- und y-Koordinaten beide kleiner als 5 sind.
Ursprünglicher Ansatz
Ein möglicher Ansatz beinhaltet die Iteration über die Wörterbuchelemente, überprüft die Koordinaten jedes Punkts und wählt diejenigen aus, die die Bedingung erfüllen. Dieser Ansatz ist zwar unkompliziert, kann aber ausführlich und fehleranfällig sein.
points = {'a': (3, 4), 'b': (1, 2), 'c': (5, 5), 'd': (3, 3)} points_small = {} 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]
Elegante Lösung
Python bietet eine elegantere Lösung mithilfe von Diktatverständnissen. Mithilfe von Diktatverständnissen können Sie ein neues Wörterbuch basierend auf einer angegebenen Bedingung mit der Syntax erstellen: {k: v für k, v in vorhandenem_Dikt, wenn Bedingung}. In unserem Fall können wir diese Syntax verwenden, um das gefilterte Wörterbuch zu erstellen:
{k: v for k, v in points.items() if v[0] < 5 and v[1] < 5}
Python 2-Kompatibilität
In Python 2 wird die Methode iteritems() verwendet anstelle von items(). Der Code für Python 2 wäre:
{k: v for k, v in points.iteritems() if v[0] < 5 and v[1] < 5}
Diese kompakte und ausdrucksstarke Syntax erleichtert die Manipulation von Wörterbüchern und das Extrahieren spezifischer Daten basierend auf Bedingungen. Die Diktatverständnisse von Python bieten ein leistungsstarkes Werkzeug zum effizienten und präzisen Filtern und Transformieren von Wörterbuchinhalten.
Das obige ist der detaillierte Inhalt vonWie filtere ich ein Wörterbuch mithilfe einer Bedingungsfunktion in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!