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)

2004038

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.