Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Mengenoperationen ausführen und dabei die ursprüngliche Reihenfolge der Elemente beibehalten?

Wie kann ich Mengenoperationen ausführen und dabei die ursprüngliche Reihenfolge der Elemente beibehalten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-16 16:41:10249Durchsuche

How Can I Perform Set Operations While Preserving the Original Order of Elements?

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!

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
Vorheriger Artikel:Blumen in PyTorchNächster Artikel:Blumen in PyTorch