Wie man Duplikate in einer Liste in Python findet
-
Verwenden Sie die Funktion
set()
, um Duplikate in einer Python-Liste zu entfernen -
Verwenden Sie das Modul
iteration_utils
, um Duplikate in einer Python-Liste zu finden
Dieses Tutorial zeigt Ihnen, wie Sie in Python nach Duplikaten innerhalb einer Liste suchen können.
Verwenden Sie die Funktion set()
, um Duplikate in einer Python-Liste zu entfernen
Python set()
ist eine Funktion zur Umwandlung einer Liste in eine Menge. Ausgehend von der Beschreibung einer Menge und einer Liste würde die Umwandlung einer Liste in eine Menge bedeuten, dass alle Duplikate in der Liste entfernt werden.
Was wir jedoch wollen, ist die Suche nach den Einträgen innerhalb der Liste, die Duplikate sind. Dazu verwenden wir nach wie vor die Funktion set()
, aber wir nehmen nur diejenigen mit mehr als einem Eintrag in die Liste auf, d.h. es sind Einträge, die Dubletten haben.
Deklarieren Sie eine Funktion, die innerhalb einer Liste nach Dubletten sucht, und speichern Sie diese als Menge.
def listToSet(listNums):
set([num for num in listNums if listNums.count(x) > 1])
Ein anderer Ansatz, wenn Sie das Ergebnis als Liste statt als Menge behalten wollen, besteht darin, set()
und add()
zu benutzen, um Duplikate innerhalb der Liste zu finden und sie bei der Rückkehr wieder in eine Liste umzuwandeln.
def list_duplicates(listNums):
once = set()
seenOnce = once.add
twice = set(num for num in listNums if num in once or seenOnce(x))
return list(twice)
Diese Funktion fügt den Eintrag zu once
hinzu, wenn die Zahl zum ersten Mal auftaucht und nicht innerhalb der Menge once
existiert.
Beide Funktionen geben die gleiche Ausgabe zurück, obwohl die eine eine Menge und die andere eine Liste ist. Das Ergebnis wird alle doppelten Einträge in listNums
ausgeben.
[1, 3, 5, 8]
Verwenden Sie das Modul iteration_utils
, um Duplikate in einer Python-Liste zu finden
iteration_utils
hat zwei Funktionen, die innerhalb einer vordefinierten Funktion nach Duplikaten suchen können: duplicates
und unique_everseen
.
Wir werden oben die gleiche Listendefinition listNums
verwenden.
Importieren Sie duplicates
aus iteration_utils
und verwenden Sie sie, um eine Liste aller Duplikate innerhalb von listNums
zurückzugeben.
from iteration_utils import duplicates
listNums = [1, 1, 2, 3, 3, 4, 5, 5, 5, 5, 6, 8, 8]
def listDups(listNums):
return list(duplicates(listNums))
Die Ausgabe der obigen Funktion wird eine Liste aller doppelten Einträge in listNums
zurückgeben.
[1, 1, 3, 3, 5, 5, 5, 5, 8, 8]
Allerdings enthält die Liste auch die Iterationen der doppelten Einträge. Das bedeutet, dass sie jede Instanz des doppelten Eintrags zurückgibt.
- An dieser Stelle kommt
unique_everseen
ins Spiel. Diese Funktion verarbeitet die Liste, um alle doppelten Instanzen zu entfernen, dieduplicates()
zurückgibt.
from iteration_utils import duplicates
from iteration_utils import unique_everseen
listNums = [1, 1, 2, 3, 3, 4, 5, 5, 5, 5, 6, 8, 8]
def listDupsUnique(listNums):
return list(unique_everseen(duplicates(listNums)))
Diese Funktion kehrt dann zurück:
[1, 3, 5, 8]
Zusammenfassend gibt es 2 einfache Lösungen, um in Python nach Duplikaten innerhalb einer Liste zu suchen. Die erste ist die Verwendung von set()
und anderen Hilfsfunktionen von Mengen in Python, um nach Duplikaten zu suchen und sie in einer anderen Variablen zu speichern. Eine andere ist das Modul iteration_utils
durch die Verwendung von duplicates
und unique_everseen
, das mehr oder weniger das Gleiche tut und die gleiche Ausgabe erzeugt.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedInVerwandter Artikel - Python List
- Alle Vorkommen eines Elements aus einer Liste in Python entfernen
- Konvertieren eines Dictionaries in eine Liste in Python
- Duplikate aus Liste entfernen in Python
- Wie erhält man den Durchschnitt einer Liste in Python
- Was ist der Unterschied zwischen den Listenmethoden append und extend
- Wie man eine Liste in Python in eine Zeichenkette konvertiert