Heim > Backend-Entwicklung > Python-Tutorial > Drei Methoden zum Löschen doppelter Elemente in Listen und zur Effizienzanalyse

Drei Methoden zum Löschen doppelter Elemente in Listen und zur Effizienzanalyse

高洛峰
Freigeben: 2016-10-19 17:12:50
Original
1791 Leute haben es durchsucht

Methode 1:

Verwenden Sie die Methode sort() des Listenobjekts, um die Liste zu sortieren, durchlaufen Sie die Liste beginnend mit dem letzten Element und bestimmen Sie, ob zwei benachbarte Elemente gleich sind!

def methodOne(list):
    list.sort()
    lenList = len(list)
    lastItem = list[lenList-1]
    for i in range(lenList-2,-1,-1):
        if list[i] == lastItem:
            list.remove(list[i])
        else:
            lastItem = list[i]
    return list
Nach dem Login kopieren

Methode 2:

Definieren Sie eine temporäre Liste. Wenn die von der Schleife iterierten Elemente nicht in der temporären Liste enthalten sind, fügen Sie sie hinzu und Endlich die temporäre Liste zurückgeben!

def methodTwo(list):
    tempList = []
    for i in list:
        if not i in tempList:
            tempList.append(i)
    return tempList
Nach dem Login kopieren

Methode drei:

lists=[20,12,34,12,24,34,55,27]
print list(set(lists))
Nach dem Login kopieren

1. Methode eins relativ Für die zweite Methode gibt es weitere Zusatzoperationen wie Sortieren und Zuweisen. Denn in Python sind Variablen unveränderlich. Jedes Mal, wenn ein Element iteriert und verglichen wird, besteht die Operation darin, eine neue lokale Variable zu erstellen und die ursprüngliche Variable zu verwerfen, was gleichzeitig mehr Speicher erfordert Sortiervorgang, zerstört die relative Position.

2. Methode 2 erstellt eine temporäre Liste für den Betrieb und die Liste ist variabel. Jedes Mal, wenn ein Element angehängt wird, werden nur ein Index und ein Wert zur ursprünglichen Liste hinzugefügt, sodass sie effizienter ist als Methode 1 !

3. Die dritte Methode ist zweifellos die effizienteste unter den drei Methoden (sowohl in Bezug auf die Einfachheit des Codes als auch auf die Betriebseffizienz): set() ist ein integrierter Datentyp „Set-Typ“. Sequentiell und der Wert ist einzigartig! Daher besteht das Ergebnis der Ausführung von set() darin, es in einen Satz umzuwandeln und doppelte Elemente direkt zu entfernen. Anschließend konvertiert list() den Satz wieder in einen Listentyp.

set() zerstört jedoch die Sortierreihenfolge. Wenn Sie die Sortierung beibehalten möchten, kann list(set(lists)) in sorted(set(lists),key=lists.index) geändert werden 🎜>


Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage