Seite 1 von 1

Werte in Listen vergleichen

Verfasst: Donnerstag 13. Februar 2020, 15:40
von JustinPython
Guten Tag allerseits.
Folgendes Problem: Ich habe eine Liste mit verschiedenen Werten, zum Beispiel "Alter". Natürlich ändert sich das Alter nach und nach und es kann passieren dass eine zahl zweimal in der Liste steht und genau das möchte ich nicht. Mein Program soll also die Werte einer Liste untereinander vergleichen.
Wennn mir da jemand helfen könnte; wäre das wirklich toll.

Liebe grüße,
Justin

Re: Werte in Listen vergleichen

Verfasst: Donnerstag 13. Februar 2020, 15:42
von Jankie
Also möchtest du aus einer Liste doppelte Einträge rauslöschen?

Re: Werte in Listen vergleichen

Verfasst: Donnerstag 13. Februar 2020, 15:46
von JustinPython
Jankie hat geschrieben: Donnerstag 13. Februar 2020, 15:42 Also möchtest du aus einer Liste doppelte Einträge rauslöschen?
ja genau, also mir ist auch wichtig dass das programm die einzelnen Werte in der Liste vergleicht.

Re: Werte in Listen vergleichen

Verfasst: Donnerstag 13. Februar 2020, 15:49
von Jankie
Also angenommen du hast folgende Liste: [1,33,25,15,33,78,33,23,22] und möchtest dass jede Zahl nur einmal in der Liste ist, dann wandelt man die Liste in ein Set um, denn in einem Set darf jeder Wert nur einmal vorkommen. Dieses Set kannst du dann wieder in eine Liste umwandeln. Also so:

Code: Alles auswählen

list_with_duplicate_items = [1,33,25,15,33,78,33,23,22]

list_without_duplicate_items = list(set(list_with_duplicate_items))

print(list_without_duplicate_items)
oder:

Code: Alles auswählen

list_with_duplicate_items = [1,33,25,15,33,78,33,23,22]
list_without_duplicate_items = []

for number in list_with_duplicate_items:
    if number not in list_without_duplicate_items:
        list_without_duplicate_items.append(number)
        print(f"{number} war noch nicht vorhanden und wurde hinzugefügt")
    else:
        print(f"{number} ist schon in der Liste vorhanden")




print(list_without_duplicate_items)
Der Zweite Code kommt dem "Vergleichen" näher, weil dort jedes Element in der Liste durchlaufen wird und geschaut wird ob dieses schon in der Liste vorhanden ist, wenn es nicht vorhanden ist wird es hinzugefügt.

Re: Werte in Listen vergleichen

Verfasst: Donnerstag 13. Februar 2020, 15:58
von __blackjack__
Wenn ein `set` als Ergebnis okay ist dann einfach ein `set` erstellen. Wenn es eine Liste sein muss, dann das `set` halt wieder in eine Liste umwandeln. Falls die Reihenfolge des Ergebnis eine Rolle spielt entweder selbst etwas programmieren, oder auf `more_itertools.unique_everseen` zurückgreifen.

Code: Alles auswählen

In [64]: ages = [1, 33, 25, 15, 33, 78, 33, 23, 22]                                       

In [65]: set(ages)                                                              
Out[65]: {1, 15, 22, 23, 25, 33, 78}

In [66]: list(set(ages))                                                        
Out[66]: [1, 33, 78, 15, 22, 23, 25]

In [67]: list(more_itertools.unique_everseen(ages))                             
Out[67]: [1, 33, 25, 15, 78, 23, 22]