Solucionat: canvieu el nom dels duplicats a la llista Python

Canviar el nom dels duplicats en una llista pot ser un problema difícil de resoldre perquè requereix que identifiqueu els duplicats i després decidiu com canviar-los el nom. Això pot ser especialment difícil si la llista conté molts elements o si els elements són objectes complexos. A més, canviar el nom dels duplicats pot requerir que modifiqueu altres parts del vostre codi que es basen en els noms originals dels elements per tal que continuïn funcionant correctament.

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

# Aquest codi defineix una funció anomenada rename_duplicates que pren una llista com a argument.
def rename_duplicates(lst):

# A continuació, crea un conjunt buit anomenat seen i una llista buida anomenada new_lst.
vist = set()
new_lst = []

# A continuació, itera els elements de la llista i comprova si ja estan al conjunt d'elements vists.
per a l'element a lst:
si l'element no està vist: # Si no ho és, l'afegeix al conjunt d'elements vists i l'afegeix a la llista nova.
seen.add(element)
new_lst.append(item) # Si ho és, crea una versió única d'aquest element afegint un sufix (per exemple, '_1') al seu nom i comprova si aquest nou element creat ja es troba al conjunt d'elements vists.

else: # Si és així, augmenta el sufix fins que trobi una versió no utilitzada d'aquest nom d'element i afegeix aquest nou element creat tant al conjunt d'elements vists com a la nova llista abans de tornar aquesta nova llista al final de la seva execució.

nou_element = element + '_1'

mentre que l'element_nou es veu: # incrementa el sufix fins a ser únic

sufix = int(new_item.split('_')[-1]) + 1 # obtenir l'últim número i afegir-hi un

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

vist.afegir (nou

Llistes en Python

Les llistes en Python són una de les estructures de dades més utilitzades. S'utilitzen per emmagatzemar una col·lecció d'elements, que poden ser de qualsevol tipus, incloses altres llistes. Les llistes són mutables, és a dir, es poden canviar després d'haver estat creades. També admeten operacions com ara la indexació, el tall i la concatenació.

Per crear una llista a Python, feu servir claudàtors i separeu cada element amb una coma:

la meva_llista = [1, 2, 3]

Podeu accedir a elements individuals de la llista mitjançant el seu índex:
la meva_lista[0] # retorna 1
la meva_lista[1] # retorna 2
la meva_lista[2] # retorna 3

També podeu utilitzar índexs negatius per accedir als elements del final de la llista:

la meva_lista[-1] # retorna 3 (l'últim element)

Podeu afegir elements a una llista mitjançant el mètode append():

my_list.append(4) # afegeix 4 al final de la llista

Podeu eliminar elements d'una llista utilitzant els mètodes remove() o pop():

my_list.remove(3) # elimina 3 de la llista

my_list.pop(2) # elimina i retorna 2 (el tercer element) de la llista

Canvieu el nom dels duplicats a la llista a Python

Canviar el nom dels duplicats a la llista a Python és una tasca habitual quan es tracta de llistes. Implica substituir elements duplicats en una llista amb valors únics. Això es pot fer mitjançant la funció set(), que elimina tots els elements duplicats d'una llista i retorna una llista nova amb només elements únics. La funció set() també es pot utilitzar per canviar el nom dels duplicats proporcionant-li un mapa de valors antics amb valors nous. Per exemple, si teniu una llista de números i voleu substituir tots els duplicats amb els seus quadrats respectius, podeu utilitzar el codi següent:

# Creeu un diccionari buit
mapeig = {}

# Itereu sobre la llista original
per a l'element de la meva_llista:
# Comproveu si l'element ja existeix al diccionari
si l'element no està al mapa:
# Si no, afegiu-lo al diccionari i assigneu el seu quadrat com a valor
mapping[element] = element * element

# Creeu una llista de resultats buida
llista_resultats = []

# Torneu a repetir la llista original i substituïu cada element pel seu quadrat del diccionari per a i a la meva_lista: resultat_list.append(mapping[i])

# Imprimeix el resultat d'impressió (result_list)

Articles Relacionats:

Deixa el teu comentari