Rešeno: preimenujte dvojnike v list python

Preimenovanje dvojnikov na seznamu je lahko težavna težava, ker morate prepoznati dvojnike in se nato odločiti, kako jih boste preimenovali. To je lahko še posebej zahtevno, če seznam vsebuje veliko elementov ali če so elementi kompleksni predmeti. Poleg tega lahko preimenovanje dvojnikov zahteva, da spremenite druge dele svoje kode, ki se zanašajo na izvirna imena elementov, da lahko še naprej pravilno delujejo.

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

# Ta koda definira funkcijo, imenovano rename_duplicates, ki sprejme seznam kot argument.
def rename_duplicates(lst):

# Nato ustvari prazen niz z imenom seen in prazen seznam z imenom new_lst.
videl = nastavil ()
new_lst = []

# Nato ponovi elemente na seznamu in preveri, ali so že v nizu videnih elementov.
za element v lst:
if item not in seen: # Če ni, ga doda v nabor videnih elementov in doda na nov seznam.
seen.add(item)
new_lst.append(item) # Če je, ustvari edinstveno različico tega elementa tako, da njegovemu imenu doda pripono (npr. '_1') in preveri, ali je ta na novo ustvarjeni element že v nizu videnih elementov.

else: # Če je tako, povečuje pripono, dokler ne najde neuporabljene različice tega imena elementa in doda tega na novo ustvarjenega elementa v nabor videnih elementov in na nov seznam, preden vrne ta novi seznam na koncu njegove izvedbe.

nov_item = element + '_1'

while new_item in seen: # povečuj pripono do edinstvenega

suffix = int(new_item.split('_')[-1]) + 1 # pridobi zadnjo številko in ji dodaj eno

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

seen.add(novo

Seznami v Pythonu

Seznami v Pythonu so ena najpogosteje uporabljenih podatkovnih struktur. Uporabljajo se za shranjevanje zbirke predmetov, ki so lahko katere koli vrste, vključno z drugimi seznami. Seznami so spremenljivi, kar pomeni, da jih je mogoče spremeniti, ko so bili ustvarjeni. Podpirajo tudi operacije, kot so indeksiranje, rezanje in veriženje.

Če želite ustvariti seznam v Pythonu, uporabite oglate oklepaje in vsak element ločite z vejico:

moj_seznam = [1, 2, 3]

Do posameznih elementov na seznamu lahko dostopate z njihovim indeksom:
my_list[0] # vrne 1
my_list[1] # vrne 2
my_list[2] # vrne 3

Za dostop do elementov s konca seznama lahko uporabite tudi negativne indekse:

my_list[-1] # vrne 3 (zadnji element)

Elemente lahko dodate na seznam z uporabo metode append():

my_list.append(4) # doda 4 na konec seznama

Elemente lahko odstranite s seznama z metodama remove() ali pop():

my_list.remove(3) # odstrani 3 s seznama

my_list.pop(2) # odstrani in vrne 2 (tretji element) s seznama

Preimenujte dvojnike na seznamu v Pythonu

Preimenovanje dvojnikov na seznamu v Pythonu je pogosta naloga pri delu s seznami. Vključuje zamenjavo podvojenih elementov na seznamu z edinstvenimi vrednostmi. To lahko storite s funkcijo set(), ki odstrani vse podvojene elemente s seznama in vrne nov seznam samo z edinstvenimi elementi. Funkcijo set() lahko uporabite tudi za preimenovanje dvojnikov, tako da ji zagotovite preslikavo starih vrednosti v nove vrednosti. Na primer, če imate seznam številk in želite zamenjati vse dvojnike z ustreznimi kvadratki, lahko uporabite naslednjo kodo:

# Ustvarite prazen slovar
preslikava = {}

# Ponavljaj po izvirnem seznamu
za element na mojem_seznamu:
# Preverite, ali element že obstaja v slovarju
če predmeta ni v preslikavi:
# Če ne, ga dodajte v slovar in mu dodelite kvadrat kot vrednost
preslikava [postavka] = postavka * postavka

# Ustvarite prazen seznam rezultatov
seznam_rezultatov = []

# Znova ponovite prvotni seznam in zamenjajte vsak element z njegovim kvadratom iz slovarja za i v my_list: result_list.append(mapping[i])

# Natisni rezultat print(result_list)

Podobni objav:

Pustite komentar