1. Anforderungen
Wir möchten ein Wörterbuch erstellen, das selbst eine Teilmenge eines anderen Wörterbuchs ist.2. Lösung
Es kann leicht mithilfe der Wörterbuchableitung gelöst werden.
prices={ 'a':1.1, 'b':2.2, 'c':3.3, 'd':4.4, 'e':5.5 } p1={key:value for key ,value in prices.items() if value>3} print(p1) names={'a','b'} p2={key:value for key,value in prices.items() if key in names} print(p2)
Ergebnis:
{'c': 3.3, 'd': 4.4, 'e': 5.5} {'a': 1.1, 'b': 2.2}
3. Analyse
Die meisten Probleme, die durch Wörterbuchableitung gelöst werden können, können auch durch die Erstellung einer Sequenz gelöst werden von Tupeln und dann Sie werden zur Vervollständigung an die Funktion dict() übergeben, zum Beispiel:
#结果为:{'c': 3.3, 'd': 4.4, 'e': 5.5} p3=dict((key,value) for key,value in prices.items() if value>3)
Aber die Wörterbuchableitungsmethode ist klarer und läuft tatsächlich viel schneller. (Die erste Effizienz wird fast doppelt so schnell sein)
Manchmal gibt es mehrere Möglichkeiten, dasselbe in derselben Zeit zu erledigen. Das zweite Beispiel kann beispielsweise auch wie folgt umgeschrieben werden:
#结果为:{'b': 2.2, 'a': 1.1} p4={key:prices[key] for key in prices.keys() & names}
Tests zeigen jedoch, dass diese Lösung fast 1,6-mal langsamer ist als die erste. Wenn es mehrere Lösungen für dasselbe Problem gibt, können Sie daher einen kleinen Test durchführen, um die aufgewendete Zeit zu untersuchen.
Das obige ist der detaillierte Inhalt vonPython implementiert eine Methode zum Extrahieren von Teilmengen aus einem Wörterbuch (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!