Heim  >  Artikel  >  So entfernen Sie Duplikate aus einer Python-Liste

So entfernen Sie Duplikate aus einer Python-Liste

百草
百草Original
2023-06-14 13:25:0713106Durchsuche

Methoden für die Python-Listen-Deduplizierung: 1. Für die Implementierung der Listen-Deduplizierung bleibt die ursprüngliche Reihenfolge nach der Deduplizierung unverändert. 2. Die ursprüngliche Reihenfolge bleibt nach der Deduplizierung unverändert. 3. Konvertierung festlegen. Die Funktion „set()“ Implementiert die Listendeduplizierung. Das Prinzip besteht darin, dass die „Schlüssel“ des Wörterbuchs nicht wiederholt werden dürfen . Es gibt doppelte Daten in der Löschliste. Solange es Duplikate gibt, löschen Sie sie alle.

So entfernen Sie Duplikate aus einer Python-Liste

Das Betriebssystem dieses Tutorials: Windows10-System, Python-Version 3.11.2, DELL G3-Computer.

So entfernen Sie Duplikate aus einer Python-Liste:
1. Verwenden Sie eine for-Schleife, um Duplikate aus einer Liste zu entfernen.

Nach dem Entfernen von Duplikaten mit dieser Methode bleibt die ursprüngliche Reihenfolge unverändert.

# for循环实现列表去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = []
for l1 in list1:
    if l1 not in list2:
        list2.append(l1)
print(list2)

Ergebnis: [‘a’, ‘b’, 1, 3, 9]

2. Verwenden Sie das Listenverständnis, um Duplikate zu entfernen
Nach dem Entfernen von Duplikaten mit dieser Methode bleibt die ursprüngliche Reihenfolge unverändert.

# 使用列表推导式去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
res = []
[res.append(i) for i in list1 if i not in res]
print(res)

Ergebnis: ['a', 'b', 1, 3, 9]

3. Verwenden Sie die Mengenkonvertierungsfunktion set(), um eine Listendeduplizierung zu erreichen.
Prinzip: Elemente derselben Menge dürfen nicht dupliziert werden

# set()列表去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = list(set(list1))
print(list2)

Ergebnis: [1, 3, 9, 'b', 'a']
Problem: Nach der Verwendung der Funktion set() zum Entfernen von Duplikaten wird diese automatisch sortiert und die Reihenfolge der ursprünglichen Liste ändert sich
Die Lösung besteht aus zwei Typen:
Die erste Methode: Verwenden Sie die Methode sort()

# # 第一种方法,sort()
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = list(set(list1))
list2.sort(key=list1.index)
print(list2)

Ergebnis: ['a', 'b', 1, 3, 9]
Hinweis: Die Methode sort() hat keinen Rückgabewert. und die Listenelemente werden sortiert. Sortieren
Zweite Methode, Funktion sorted() verwenden

# 第二种方法,sored()
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = sorted(list(set(list1)), key=list1.index)
print(list2)

Ergebnis: ['a', 'b', 1, 3, 9]
Hinweis: Die in Python integrierte Funktion sorted() gibt a zurück Neue Liste, die nicht korrekt ist Nehmen Sie Änderungen an der ursprünglichen Liste vor

4. Verwenden Sie die neue Wörterbuchmethode, um eine Listendeduplizierung zu erreichen
Prinzip: Die „Schlüssel“ des Wörterbuchs dürfen nicht wiederholt werden
Nach der Deduplizierung damit Methode bleibt die ursprüngliche Reihenfolge unverändert.

# 使用新建字典实现列表去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
dic = {}
dic = dic.fromkeys(list1).keys()
print(list(dic))

Ergebnis: ['a', 'b', 1, 3, 9]

5. Löschen Sie doppelte Daten in der Liste
Die oben genannten 4 Deduplizierungsmethoden behalten alle eine und löschen die anderen
Die folgende Methode ist keine behalten, solange Duplikate vorhanden sind

# 删除存在重复的值,不保留
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = [i for i in list1 if list1.count(i) == 1]
print(list2)

Ergebnis: ['b', 1, 3]

Die oben genannten 5 Methoden zum Deduplizieren von Listen. Sie können die entsprechende Methode entsprechend Ihren Anforderungen auswählen.

Das obige ist der detaillierte Inhalt vonSo entfernen Sie Duplikate aus einer Python-Liste. 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