Riješeno: preimenuj duplikate u listi python-a

Preimenovanje duplikata na listi može biti težak problem za rješavanje jer zahtijeva da identifikujete duplikate, a zatim odlučite kako ih preimenovati. Ovo može biti posebno izazovno ako lista sadrži mnogo elemenata ili ako su elementi složeni objekti. Osim toga, preimenovanje duplikata može zahtijevati da izmijenite druge dijelove vašeg koda koji se oslanjaju na originalna imena elemenata kako bi oni nastavili ispravno funkcionirati.

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

# Ovaj kod definira funkciju zvanu rename_duplicates koja uzima listu kao argument.
def rename_duplicates(lst):

# Zatim kreira prazan skup koji se zove seen i praznu listu pod nazivom new_lst.
viđeno = set()
novi_prvi = []

# Zatim iterira kroz stavke na listi i provjerava jesu li već u skupu viđenih stavki.
za stavku u lst:
ako stavka nije viđena: # Ako nije, dodaje je u skup viđenih stavki i dodaje je na novu listu.
seen.add(item)
new_lst.append(item) # Ako jeste, stvara jedinstvenu verziju te stavke dodavanjem sufiksa (npr. '_1') njenom imenu i provjerava da li je ova novokreirana stavka već u skupu viđenih stavki.

else: # Ako je tako, povećava sufiks dok ne pronađe neiskorištenu verziju naziva te stavke i dodaje ovu novokreiranu stavku i skupu viđenih stavki i novoj listi prije nego što vrati ovu novu listu na kraju njenog izvršenja.

new_item = stavka + '_1'

dok je new_item u viđenom: # povećajte sufiks dok ne bude jedinstven

sufiks = int(new_item.split('_')[-1]) + 1 # preuzmi zadnji broj i dodaj mu jedan

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

viđeno.dodaj(novo

Liste u Pythonu

Liste u Pythonu su jedna od najčešće korištenih struktura podataka. Koriste se za pohranjivanje kolekcije stavki, koje mogu biti bilo kojeg tipa, uključujući i druge liste. Liste su promjenjive, što znači da se mogu mijenjati nakon što su kreirane. Oni također podržavaju operacije kao što su indeksiranje, rezanje i spajanje.

Da biste kreirali listu u Pythonu, koristite uglaste zagrade i svaku stavku odvojite zarezom:

my_list = [1, 2, 3]

Možete pristupiti pojedinim elementima na listi koristeći njihov indeks:
my_list[0] # vraća 1
my_list[1] # vraća 2
my_list[2] # vraća 3

Također možete koristiti negativne indekse za pristup elementima s kraja liste:

my_list[-1] # vraća 3 (posljednji element)

Možete dodati stavke na listu pomoću metode append():

my_list.append(4) # dodaje 4 na kraj liste

Možete ukloniti stavke sa liste pomoću metoda remove() ili pop():

my_list.remove(3) # uklanja 3 sa liste

my_list.pop(2) # uklanja i vraća 2 (treći element) sa liste

Preimenujte duplikate na listi u Pythonu

Preimenovanje duplikata u listi u Pythonu je uobičajen zadatak kada se radi sa listama. To uključuje zamjenu duplih elemenata na listi jedinstvenim vrijednostima. Ovo se može učiniti pomoću funkcije set(), koja uklanja sve duple elemente sa liste i vraća novu listu samo sa jedinstvenim elementima. Funkcija set() se također može koristiti za preimenovanje duplikata pružajući joj mapiranje starih vrijednosti u nove vrijednosti. Na primjer, ako imate listu brojeva i želite zamijeniti sve duplikate njihovim odgovarajućim kvadratima, možete koristiti sljedeći kod:

# Kreirajte prazan rječnik
mapiranje = {}

# Iterirajte preko originalne liste
za stavku na mojoj_listi:
# Provjerite da li stavka već postoji u rječniku
ako stavka nije u mapiranju:
# Ako nije, dodajte ga u rječnik i dodijelite njegovom kvadratu kao vrijednost
mapiranje[stavka] = stavka * stavka

# Kreirajte praznu listu rezultata
lista_rezultata = []

# Ponovo ponovite originalnu listu i zamijenite svaki element svojim kvadratom iz rječnika za i u my_list: result_list.append(mapping[i])

# Odštampaj rezultat print(result_list)

Slični postovi:

Ostavite komentar