Heim > Backend-Entwicklung > Python-Tutorial > Warum ändert die Konvertierung einer Liste in einen Satz die Reihenfolge und wie kann ich sie beibehalten?

Warum ändert die Konvertierung einer Liste in einen Satz die Reihenfolge und wie kann ich sie beibehalten?

Linda Hamilton
Freigeben: 2024-12-30 22:18:13
Original
319 Leute haben es durchsucht

Why Does Converting a List to a Set Change the Order, and How Can I Preserve It?

Reihenfolgeänderungen bei Mengenkonvertierungen

Beim Konvertieren einer Liste in eine Menge in Python scheint die Reihenfolge der Elemente geändert zu werden. Dies kann rätselhaft sein, da Listen die Reihenfolge ihrer Elemente beibehalten, während Mengen ungeordnete Datenstrukturen sind. Der Grund für diese Diskrepanz liegt in der grundlegenden Natur von Sets.

Sets sind darauf ausgelegt, effiziente Mitgliedschaftstests durchzuführen und behalten nicht die Einfügereihenfolge von Elementen bei. Dies liegt daran, dass Sätze intern als Hash-Tabellen dargestellt werden, in denen Elemente zur schnelleren Suche verschlüsselt gespeichert werden.

So bewahren Sie die Reihenfolge auf

Wenn Sie die Beibehaltung benötigen Für die Reihenfolge Ihrer Datensammlungen gibt es mehrere Alternativen zur Verwendung von Sätzen:

  • Liste Verständnis: Um Mengenoperationen unter Beibehaltung der ursprünglichen Reihenfolge auszuführen, verwenden Sie ein Listenverständnis. Um beispielsweise Elemente aus einer Liste A basierend auf einer Menge B zu entfernen, verwenden Sie den folgenden Code:
B = set([6, 20, 1])
result = [x for x in A if x not in B]
Nach dem Login kopieren
  • Ordered Dictionary (Python 3.7): Python Wörterbücher bieten jetzt die OrderedDict-Funktionalität und gewährleisten so die Beibehaltung der Einfügungsreihenfolge. So führen Sie Set-Operationen durch:
import collections
A = collections.OrderedDict.fromkeys([1, 2, 20, 6, 210])
B = collections.OrderedDict.fromkeys([6, 20, 1])
result = collections.OrderedDict.fromkeys(x for x in A if x not in B)
Nach dem Login kopieren
  • Ältere Python-Versionen: Für Python-Versionen vor 3.7 verwenden Sie stattdessen das Modul „collections.OrderedDict“.

Das obige ist der detaillierte Inhalt vonWarum ändert die Konvertierung einer Liste in einen Satz die Reihenfolge und wie kann ich sie beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage