Python :: Aufgabe #325

5 Lösungen Lösungen öffentlich

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ß

Lösungen:

vote_ok
von felixTheC (1200 Punkte) - 04.03.2021 um 21:34 Uhr
Quellcode ausblenden 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

vote_ok
von eisheiliger (3750 Punkte) - 05.03.2021 um 17:24 Uhr
Quellcode ausblenden 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()


vote_ok
von bdoc137 (260 Punkte) - 05.03.2021 um 20:51 Uhr
Quellcode ausblenden 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]))


vote_ok
von satn1241 (3090 Punkte) - 06.03.2021 um 20:44 Uhr
Quellcode ausblenden 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)
vote_ok
von Joker (120 Punkte) - 27.03.2021 um 17:41 Uhr
Quellcode ausblenden 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)