Gibt es eine Möglichkeit, die ursprüngliche Reihenfolge der Elemente in der Liste beizubehalten? mit meinem Code unten ich dieses als AusgabeGibt es eine Möglichkeit, Duplikate in einer Liste zu entfernen, während die ursprüngliche Reihenfolge beibehalten wird?
Werte: [1, 3, 0, 1, 4, 1, 1, 2, 2, 5, 4, 3, 1, 3, 3, 4, 2, 4, 3, 1, 3, 0, 3, 0, 0]
Sauber: [5, 2, 4, 1, 3, 0]
ich [1, 2, 0, 4, 5, 3]
als "sauber" -Liste brauchen
def remove_duplicates(lst)
i = len(lst)
while i>0:
while values.count(values[i]>1:
values.remove(values[i])
i-=1
i-=1
return
Die Frage scheint ziemlich einfach mit For-Schleifen und einer neuen Listenausgabe zu lösen, aber ich muss While-Schleifen verwenden und mit nur einer Liste bleiben.
def remove_duplicates(lst):
new =[]
for x in lst:
if x not in lst:
new.append(x)
return new
Wie haben Sie die gewünschte Liste als '[1, 2, 0, 4, 5, 3]'? Ich sehe keine Logik dahinter. Zumindest basiert diese Liste weder auf dem ersten Auftreten der Nummer noch auf dem letzten Auftreten. Bitte erläutern Sie die Logik –
@ Miryloth Ihre Ausgabe macht keinen Sinn. Wenn Sie die erste Instanz jeder Zahl in Ihrer Liste nehmen würden, würden Sie "[1,3,0,4,2,5]" erhalten, aber Sie sagen, es sollte "[1, 2, 0, 4, 5 sein , 3] '? –
Mögliches Duplikat von [Wie entfernen Sie Duplikate aus einer Liste, während Sie die Reihenfolge beibehalten?] (Http://stackoverflow.com/questions/480214/how-do-you-remove-duplicates-from-a-list-in- while-preserving-order) –