Python :: Aufgabe #325
5 Lösungen
Duplikate bis auf Dopplungen aus Liste entfernen
Anfänger - Python
von JKooP
- 21.02.2021 um 11:24 Uhr
Gegeben ist eine sortierte Liste, welche alle gängigen Datentypen aufnehmen kann.
Dabei sind alle Werte des gleichen Typs. Statt der Liste können auch Arrays genutzt werden.
Beispiele:
List<int> {1, 1, 1, 2, 2, 3}
List<char> {‘a’, ‘a’, ‘b’, ‘c’, ‘c’, ‘c’}
Aus dieser Liste sollen jetzt alle Duplikate entfernt werden, wobei hier jeder Wert 2-mal vorkommen darf.
Lösung:
List<int> {1, 1, 2, 2, 3}
List<char> {‘a’, ‘a’, ‘b’, ‘c’, ‘c’}
Schreibe eine Methode/Funktion, die eine Liste/Array aufnimmt, die Duplikate entfernt
und diese dann wieder als Rückgabewert oder Referenz zurückgibt.
Viel Spaß
Dabei sind alle Werte des gleichen Typs. Statt der Liste können auch Arrays genutzt werden.
Beispiele:
List<int> {1, 1, 1, 2, 2, 3}
List<char> {‘a’, ‘a’, ‘b’, ‘c’, ‘c’, ‘c’}
Aus dieser Liste sollen jetzt alle Duplikate entfernt werden, wobei hier jeder Wert 2-mal vorkommen darf.
Lösung:
List<int> {1, 1, 2, 2, 3}
List<char> {‘a’, ‘a’, ‘b’, ‘c’, ‘c’}
Schreibe eine Methode/Funktion, die eine Liste/Array aufnimmt, die Duplikate entfernt
und diese dann wieder als Rückgabewert oder Referenz zurückgibt.
Viel Spaß
Lösungen:
Python-Code
from typing import List from typing import Union def doublicates_two_allowed(arr: List[Union[int, str]]) -> List[Union[int, str]]: filtered_list = [] [filtered_list.append(elem) for elem in arr if filtered_list.count(elem) < 2] return filtered_list
Python-Code
""" #325: Duplikate bis auf Dopplungen aus Liste entfernen Schreibe eine Methode/Funktion, die eine Liste/Array aufnimmt, die Duplikate entfernt und diese dann wieder als Rückgabewert oder Referenz zurückgibt. """ import numpy as np def dupyes(arr_in): arr_ot = {x: arr_in.count(x) for x in arr_in} arr_ot1 = (np.array(list(arr_ot.items()))) arr_ot2 = [] for i in range(0, len(arr_ot1)): if arr_ot1[i][1] == 1 or arr_ot1[i][1] == '1': arr_ot2.append(arr_ot1[i][0]) else: arr_ot2.append(arr_ot1[i][0]) arr_ot2.append(arr_ot1[i][0]) print(arr_ot2) def main(): dupyes([1, 1, 1, 2, 2, 3]) dupyes(["a", "a", "b", "c", "c", "c"]) if __name__ == '__main__': main()
Python-Code
def duplikate(liste): b=[] liste=sorted(liste) for i in liste: if i not in b: count=0 b.append(i) count=count+1 elif i in b: if count==1: b.append(i) count=count+1 elif count>2: continue return(b) print(duplikate([2,2,3,4,3,3,4,4,5,1,1,7,8,8,9]))
Python-Code
liste_alt = ['a', 'a', 'b', 'c', 'c', 'c'] liste_neu=[liste_alt[0]] counter = 0 for i in range(0, len(liste_alt)-1): if liste_alt[i]==liste_alt[i+1]: counter+=1 if counter <2: liste_neu.append(liste_alt[i+1]) else: counter=0 liste_neu.append(liste_alt[i + 1]) print(liste_neu)
Python-Code
#Funktion def streiche_duplikate(): i = 0 while i < len(liste0): if liste0.count(liste0[i])>2: liste0.remove(liste0[i]) i+=1 #Aufruf Liste liste0 = ['a','a','a','b','b','c','c','c','e',] #Aufruf Funktion streiche_duplikate() #Ausgabe Liste print(liste0)