Opgelost: hernoem duplicaten in lijstpython

Het hernoemen van duplicaten in een lijst kan een moeilijk probleem zijn om op te lossen, omdat u de duplicaten moet identificeren en vervolgens moet beslissen hoe u ze wilt hernoemen. Dit kan vooral een uitdaging zijn als de lijst veel elementen bevat of als de elementen complexe objecten zijn. Bovendien kan het hernoemen van duplicaten vereisen dat u andere delen van uw code wijzigt die afhankelijk zijn van de oorspronkelijke namen van de elementen om ervoor te zorgen dat ze correct blijven functioneren.

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

# Deze code definieert een functie genaamd rename_duplicates die een lijst als argument opneemt.
def hernoemen_duplicates(lst):

# Het creëert dan een lege set genaamd seen en een lege lijst genaamd new_lst.
gezien = set ()
nieuwe_lst = []

# Het doorloopt vervolgens de items in de lijst en controleert of ze al in de set met geziene items staan.
voor item in lst:
if item not in seen: # Als dit niet het geval is, wordt het toegevoegd aan de set van gezien items en wordt het toegevoegd aan de nieuwe lijst.
gezien.toevoegen(item)
new_lst.append(item) # Als dat zo is, maakt het een unieke versie van dat item door een achtervoegsel (bijv. '_1') aan de naam toe te voegen en controleert het of dit nieuw gemaakte item al in de set van geziene items zit.

else: # Als dat zo is, verhoogt het het achtervoegsel totdat het een ongebruikte versie van die itemnaam vindt en voegt dit nieuw gemaakte item toe aan zowel de set van geziene items als aan de nieuwe lijst voordat deze nieuwe lijst aan het einde van de uitvoering wordt geretourneerd.

nieuw_item = item + '_1'

terwijl new_item wordt gezien: # verhoog achtervoegsel tot uniek

achtervoegsel = int(new_item.split('_')[-1]) + 1 # haal het laatste nummer op en voeg er een toe

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

gezien.toevoegen(nieuw

Lijsten in Python

Lijsten in Python zijn een van de meest gebruikte datastructuren. Ze worden gebruikt om een ​​verzameling items op te slaan, die van elk type kunnen zijn, inclusief andere lijsten. Lijsten zijn veranderlijk, wat betekent dat ze kunnen worden gewijzigd nadat ze zijn gemaakt. Ze ondersteunen ook bewerkingen zoals indexering, segmentering en samenvoeging.

Om een ​​lijst in Python te maken, gebruik je vierkante haken en scheid je elk item met een komma:

mijn_lijst = [1, 2, 3]

U hebt toegang tot individuele elementen in de lijst met behulp van hun index:
mijn_lijst[0] # retourneert 1
mijn_lijst[1] # retourneert 2
mijn_lijst[2] # retourneert 3

U kunt ook negatieve indices gebruiken om toegang te krijgen tot elementen aan het einde van de lijst:

mijn_lijst[-1] # retourneert 3 (het laatste element)

U kunt items aan een lijst toevoegen met behulp van de append() methode:

my_list.append(4) # voegt 4 toe aan het einde van de lijst

U kunt items uit een lijst verwijderen met de methode remove() of pop():

my_list.remove(3) # verwijdert 3 van de lijst

my_list.pop(2) # verwijdert en retourneert 2 (het derde element) uit de lijst

Hernoem duplicaten in lijst in Python

Hernoemen van duplicaten in lijst in Python is een veelvoorkomende taak bij het omgaan met lijsten. Het gaat om het vervangen van dubbele elementen in een lijst met unieke waarden. Dit kan worden gedaan met behulp van de set() functie, die alle dubbele elementen uit een lijst verwijdert en een nieuwe lijst retourneert met alleen unieke elementen. De functie set() kan ook worden gebruikt om duplicaten te hernoemen door deze te voorzien van een toewijzing van oude waarden aan nieuwe waarden. Als u bijvoorbeeld een lijst met getallen heeft en alle duplicaten wilt vervangen door hun respectieve vierkanten, kunt u de volgende code gebruiken:

# Maak een leeg woordenboek
in kaart brengen = {}

# Herhaal de originele lijst
voor item in my_list:
# Controleer of het item al in het woordenboek bestaat
indien item niet in kaart gebracht:
# Zo niet, voeg het dan toe aan het woordenboek en wijs het vierkant toe als waarde
mapping[item] = item * item

# Maak een lege resultatenlijst
resultaat_lijst = []

# Herhaal de originele lijst opnieuw en vervang elk element door zijn vierkant uit het woordenboek voor i in mijn_lijst: result_list.append(mapping[i])

# Print resultaat print(result_list)

Gerelateerde berichten:

Laat een bericht achter