Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Mengenoperationen ausführen und dabei die ursprüngliche Reihenfolge der Elemente beibehalten?
Mengenoperationen und Beibehaltung der Reihenfolge
Beim Konvertieren einer Liste in eine Menge ändert sich die Reihenfolge der Elemente, da Mengen ungeordnete Datenstrukturen sind, die schnell Prioritäten setzen Mitgliedschaftstests. Sie behalten nicht die ursprüngliche Einfügereihenfolge bei.
Behalten der Reihenfolge bei Set-Operationen
Um Set-Operationen auszuführen, ohne die ursprüngliche Reihenfolge zu verlieren, ziehen Sie die folgenden Optionen in Betracht:
1. Listenverständnis für Mengenunterschiede
Wenn Sie eine reguläre Liste haben und eine Menge von Elementen entfernen und dabei die Reihenfolge beibehalten müssen, verwenden Sie ein Listenverständnis:
a = [1, 2, 20, 6, 210] b = set([6, 20, 1]) [x for x in a if x not in b] # [2, 210]
2 . Wörterbuchschlüssel für geordnete Mengen
Für eine Datenstruktur mit schnellen Mitgliedschaftstests und Beibehaltung der Einfügereihenfolge verwenden Sie die Schlüssel eines Python-Wörterbuchs (ab Python 3.7):
a = dict.fromkeys([1, 2, 20, 6, 210]) b = dict.fromkeys([6, 20, 1]) dict.fromkeys(x for x in a if x not in b) # {2: None, 210: None}
3. Collections.OrderedDict (Legacy-Unterstützung)
Für ältere Python-Versionen verlassen Sie sich auf Sammlungen.OrderedDict:
a = collections.OrderedDict.fromkeys([1, 2, 20, 6, 210]) b = collections.OrderedDict.fromkeys([6, 20, 1]) collections.OrderedDict.fromkeys(x for x in a if x not in b) # OrderedDict([(2, None), (210, None)])
Das obige ist der detaillierte Inhalt vonWie kann ich Mengenoperationen ausführen und dabei die ursprüngliche Reihenfolge der Elemente beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!