Beibehalten der Listenreihenfolge beim Konvertieren in eine Menge
Beim Konvertieren einer Liste in eine Menge in Python kann sich die Reihenfolge der Elemente aufgrund von Mengen ändern sind ungeordnete Datenstrukturen. Dieses Verhalten kann unpraktisch sein, wenn Sie die ursprüngliche Bestellung beibehalten müssen.
Sets dienen der schnellen Suche nach Mitgliedschaften durch die Speicherung von Elementen als Hashwerte. Die Reihenfolge, in der Elemente zum Satz hinzugefügt werden, wird nicht beibehalten. Wenn Sie also eine Liste in einen Satz konvertieren, werden die Elemente neu angeordnet, um die Sucheffizienz zu optimieren.
a. Listenverständnisse
Wenn Sie bestimmte Elemente aus einer Liste entfernen und dabei die Reihenfolge beibehalten müssen, können Sie ein Listenverständnis verwenden. Zum Beispiel:
a = [1, 2, 20, 6, 210] b = set([6, 20, 1]) result = [x for x in a if x not in b] # [2, 210]
b. OrderedDict (Python 3.7)
Für Python-Versionen 3.7 und höher können Siecollections.OrderedDict verwenden, um geordnete Mengen zu erstellen. Die Reihenfolge der Elemente bleibt auch nach festgelegten Operationen erhalten.
from collections import OrderedDict a = OrderedDict.fromkeys([1, 2, 20, 6, 210]) b = OrderedDict.fromkeys([6, 20, 1]) result = OrderedDict.fromkeys(x for x in a if x not in b) # OrderedSet([(2, None), (210, None)])
c. OrderedSet (Ältere Python-Versionen)
In älteren Python-Versionen können Sie das Paket „orderedset“ verwenden, um eine ähnliche Funktionalität zu erreichen:
import orderedset a = orderedset.OrderedSet([1, 2, 20, 6, 210]) b = orderedset.OrderedSet([6, 20, 1]) result = orderedset.OrderedSet(x for x in a if x not in b)
Mit diesen Techniken können Sie Mengenoperationen ausführen unter Beibehaltung der ursprünglichen Listenreihenfolge.
Das obige ist der detaillierte Inhalt vonWie kann ich die Listenreihenfolge nach der Konvertierung in eine Menge in Python beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!