Risolto: rinomina i duplicati nell'elenco python

Rinominare i duplicati in un elenco può essere un problema difficile da risolvere perché richiede di identificare i duplicati e quindi decidere come rinominarli. Questo può essere particolarmente impegnativo se l'elenco contiene molti elementi o se gli elementi sono oggetti complessi. Inoltre, la ridenominazione dei duplicati potrebbe richiedere la modifica di altre parti del codice che si basano sui nomi originali degli elementi affinché continuino a funzionare correttamente.

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

# Questo codice definisce una funzione chiamata rename_duplicates che accetta una lista come argomento.
def rinomina_duplicati(lst):

# Quindi crea un insieme vuoto chiamato seen e un elenco vuoto chiamato new_lst.
visto = set ()
nuovo_lst = []

# Quindi scorre gli elementi nell'elenco e controlla se sono già nell'insieme degli elementi visti.
per elemento in lst:
if item not in seen: # Se non lo è, lo aggiunge all'insieme degli elementi visti e lo accoda al nuovo elenco.
visto.add(oggetto)
new_lst.append(item) # Se lo è, crea una versione univoca di quell'elemento aggiungendo un suffisso (ad esempio, '_1') al suo nome e controlla se questo elemento appena creato è già nell'insieme degli elementi visti.

else: # In tal caso, incrementa il suffisso finché non trova una versione inutilizzata del nome dell'elemento e aggiunge questo elemento appena creato sia all'insieme di elementi visti che al nuovo elenco prima di restituire questo nuovo elenco al termine della sua esecuzione.

new_item = elemento + '_1'

while new_item in seen: # incrementa il suffisso fino a diventare unico

suffisso = int(new_item.split('_')[-1]) + 1 # recupera l'ultimo numero e aggiungine uno

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

visto.add(nuovo

Elenchi in Python

Le liste in Python sono una delle strutture dati più comunemente utilizzate. Sono utilizzati per archiviare una raccolta di elementi, che possono essere di qualsiasi tipo, inclusi altri elenchi. Gli elenchi sono modificabili, nel senso che possono essere modificati dopo essere stati creati. Supportano anche operazioni come l'indicizzazione, l'affettatura e la concatenazione.

Per creare un elenco in Python, usa le parentesi quadre e separa ogni elemento con una virgola:

mia_lista = [1, 2, 3]

Puoi accedere ai singoli elementi nell'elenco utilizzando il loro indice:
mia_lista[0] # restituisce 1
mia_lista[1] # restituisce 2
mia_lista[2] # restituisce 3

Puoi anche utilizzare indici negativi per accedere agli elementi dalla fine dell'elenco:

mia_lista[-1] # restituisce 3 (l'ultimo elemento)

Puoi aggiungere elementi a un elenco utilizzando il metodo append():

my_list.append(4) # aggiunge 4 alla fine della lista

Puoi rimuovere elementi da un elenco utilizzando i metodi remove() o pop():

my_list.remove(3) # rimuove 3 dalla lista

my_list.pop(2) # rimuove e restituisce 2 (il terzo elemento) dalla lista

Rinomina i duplicati nell'elenco in Python

Rinominare i duplicati nell'elenco in Python è un'attività comune quando si ha a che fare con gli elenchi. Implica la sostituzione di elementi duplicati in un elenco con valori univoci. Questo può essere fatto usando la funzione set(), che rimuove tutti gli elementi duplicati da un elenco e restituisce un nuovo elenco con solo elementi univoci. La funzione set() può anche essere utilizzata per rinominare i duplicati fornendogli una mappatura dei vecchi valori ai nuovi valori. Ad esempio, se si dispone di un elenco di numeri e si desidera sostituire tutti i duplicati con i rispettivi quadrati, è possibile utilizzare il seguente codice:

# Crea un dizionario vuoto
mappatura = {}

# Itera sull'elenco originale
per l'elemento nella mia_lista:
# Controlla se l'elemento esiste già nel dizionario
se l'elemento non è in mappatura:
# In caso contrario, aggiungilo al dizionario e assegna il suo quadrato come valore
mappatura[oggetto] = oggetto * oggetto

# Crea un elenco di risultati vuoto
lista_risultati = []

# Itera nuovamente sulla lista originale e sostituisci ogni elemento con il suo quadrato dal dizionario per i in my_list: result_list.append(mapping[i])

# Stampa risultato print(result_list)

Related posts:

Lascia un tuo commento