Gelöst: Duplikate in Listenpython umbenennen

Das Umbenennen von Duplikaten in einer Liste kann ein schwierig zu lösendes Problem sein, da Sie die Duplikate identifizieren und dann entscheiden müssen, wie sie umbenannt werden sollen. Dies kann besonders schwierig sein, wenn die Liste viele Elemente enthält oder wenn die Elemente komplexe Objekte sind. Darüber hinaus müssen Sie beim Umbenennen von Duplikaten möglicherweise andere Teile Ihres Codes ändern, die sich auf die ursprünglichen Namen der Elemente stützen, damit sie weiterhin ordnungsgemäß funktionieren.

def rename_duplicates(lst): 
    seen = set() 
    new_lst = [] 

    for item in lst: 
        if item not in seen: 
            seen.add(item) 
            new_lst.append(item) 
        else: 
            new_item = item + '_1'   # append a suffix to make it unique  

            while new_item in seen:   # increment the suffix until it's unique  
                suffix = int(new_item.split('_')[-1]) + 1   # get the last number and add one to it  
                new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), suffix)

            seen.add(new_item)     # add the newly created item to the set of seen items  
            new_lst.append(new_item)     # append the newly created item to the list

    return new

_lst

# Dieser Code definiert eine Funktion namens rename_duplicates, die eine Liste als Argument akzeptiert.
def rename_duplicates(lst):

# Dann erstellt es eine leere Menge namens seen und eine leere Liste namens new_lst.
gesehen = set ()
neue_lst = []

# Es durchläuft dann die Elemente in der Liste und prüft, ob sie bereits in der Menge der gesehenen Elemente enthalten sind.
für Artikel in Liste:
if item not in seen: # Wenn dies nicht der Fall ist, wird es der Menge der gesehenen Elemente hinzugefügt und an die neue Liste angehängt.
gesehen.hinzufügen (Element)
new_lst.append(item) # Wenn dies der Fall ist, erstellt es eine eindeutige Version dieses Elements, indem es ein Suffix (z. B. '_1') zu seinem Namen hinzufügt, und überprüft, ob dieses neu erstellte Element bereits in der Menge der gesehenen Elemente enthalten ist.

sonst: # Wenn ja, erhöht es das Suffix, bis es eine unbenutzte Version dieses Elementnamens findet, und fügt dieses neu erstellte Element sowohl der Menge der gesehenen Elemente als auch der neuen Liste hinzu, bevor es diese neue Liste am Ende seiner Ausführung zurückgibt.

new_item = Artikel + '_1'

while new_item in seen: # Suffix erhöhen bis eindeutig

suffix = int(new_item.split('_')[-1]) + 1 # Letzte Zahl abrufen & eins hinzufügen

new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), Suffix)

seen.add (neu

Listen in Python

Listen in Python sind eine der am häufigsten verwendeten Datenstrukturen. Sie werden verwendet, um eine Sammlung von Elementen zu speichern, die von beliebigem Typ sein können, einschließlich anderer Listen. Listen sind änderbar, d. h. sie können geändert werden, nachdem sie erstellt wurden. Sie unterstützen auch Operationen wie Indexierung, Slicing und Verkettung.

Um eine Liste in Python zu erstellen, verwenden Sie eckige Klammern und trennen jedes Element durch ein Komma:

meine_liste = [1, 2, 3]

Auf einzelne Elemente der Liste können Sie über deren Index zugreifen:
meine_liste[0] # gibt 1 zurück
meine_liste[1] # gibt 2 zurück
meine_liste[2] # gibt 3 zurück

Sie können auch negative Indizes verwenden, um auf Elemente vom Ende der Liste zuzugreifen:

my_list[-1] # gibt 3 zurück (das letzte Element)

Sie können Elemente mit der Methode append() zu einer Liste hinzufügen:

my_list.append(4) # fügt 4 am Ende der Liste hinzu

Sie können Elemente aus einer Liste entfernen, indem Sie entweder die Methoden remove() oder pop() verwenden:

my_list.remove(3) # entfernt 3 aus der Liste

my_list.pop(2) # entfernt und gibt 2 (das dritte Element) aus der Liste zurück

Benennen Sie Duplikate in der Liste in Python um

Das Umbenennen von Duplikaten in Listen in Python ist eine häufige Aufgabe beim Umgang mit Listen. Dabei werden doppelte Elemente in einer Liste durch eindeutige Werte ersetzt. Dies kann mit der Funktion set() erfolgen, die alle doppelten Elemente aus einer Liste entfernt und eine neue Liste mit nur eindeutigen Elementen zurückgibt. Die Funktion set() kann auch verwendet werden, um Duplikate umzubenennen, indem ihr eine Zuordnung alter Werte zu neuen Werten bereitgestellt wird. Wenn Sie beispielsweise eine Liste mit Zahlen haben und alle Duplikate durch die entsprechenden Quadrate ersetzen möchten, können Sie den folgenden Code verwenden:

# Erstellen Sie ein leeres Wörterbuch
Zuordnung = {}

# Über die ursprüngliche Liste iterieren
für Artikel in my_list:
# Überprüfen Sie, ob das Element bereits im Wörterbuch vorhanden ist
wenn Artikel nicht im Mapping:
# Wenn nicht, füge es dem Wörterbuch hinzu und weise sein Quadrat als Wert zu
Zuordnung[Artikel] = Artikel * Artikel

# Erstellen Sie eine leere Ergebnisliste
result_list = []

# Iterieren Sie erneut über die ursprüngliche Liste und ersetzen Sie jedes Element durch sein Quadrat aus dem Wörterbuch für i in my_list: result_list.append(mapping[i])

# Ergebnis drucken print(result_list)

Zusammenhängende Posts:

Hinterlasse einen Kommentar