Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich die Listenreihenfolge nach der Konvertierung in eine Menge in Python beibehalten?

Wie kann ich die Listenreihenfolge nach der Konvertierung in eine Menge in Python beibehalten?

Mary-Kate Olsen
Freigeben: 2024-12-10 18:56:10
Original
950 Leute haben es durchsucht

How Can I Maintain List Order After Converting to a Set in Python?

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.

  1. Grund für die Bestelländerung

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.

  1. Behalten der Reihenfolge mit Mengenoperationen

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]
Nach dem Login kopieren

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)])
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

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