Išspręsta: pervardyti dublikatus sąraše python

Sąrašo dublikatų pervardijimas gali būti sudėtinga problema, nes reikia identifikuoti dublikatus ir nuspręsti, kaip juos pervardyti. Tai gali būti ypač sudėtinga, jei sąraše yra daug elementų arba jei elementai yra sudėtingi objektai. Be to, pervardijant dublikatus gali reikėti modifikuoti kitas kodo dalis, kurios priklauso nuo pradinių elementų pavadinimų, kad jos toliau tinkamai veiktų.

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

# Šis kodas apibrėžia funkciją, vadinamą rename_duplicates, kuri sąrašą paima kaip argumentą.
def rename_duplicates(lst):

# Tada sukuriamas tuščias rinkinys, vadinamas matytu, ir tuščias sąrašas, vadinamas new_lst.
matytas = nustatytas ()
new_lst = []

# Tada jis kartoja sąrašo elementus ir patikrina, ar jie jau yra matomų elementų rinkinyje.
lst elementui:
jei elementas nematomas: # Jei ne, jis įtraukiamas į matytų elementų rinkinį ir pridedamas prie naujo sąrašo.
matytas.pridėti(elementas)
new_lst.append(item) # Jei taip, jis sukuria unikalią to elemento versiją, pridėdamas prie jo pavadinimo priesagą (pvz., '_1') ir patikrina, ar šis naujai sukurtas elementas jau yra matytų elementų rinkinyje.

else: # Jei taip, jis didina priesagą, kol randa nenaudojamą elemento pavadinimo versiją, ir įtrauks šį naujai sukurtą elementą ir į matytų elementų rinkinį, ir į naują sąrašą, prieš grąžindamas šį naują sąrašą jo vykdymo pabaigoje.

new_item = prekė + '_1'

o naujas_elementas matytas: # priesagos padidėjimas iki unikalumo

priesaga = int(new_item.split('_')[-1]) + 1 # gauti paskutinį skaičių ir pridėti vieną prie jo

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

matytas.add(new

Sąrašai Python

Python sąrašai yra viena iš dažniausiai naudojamų duomenų struktūrų. Jie naudojami elementų kolekcijai saugoti, kuri gali būti bet kokio tipo, įskaitant kitus sąrašus. Sąrašai yra keičiami, o tai reiškia, kad juos galima keisti sukūrus. Jie taip pat palaiko tokias operacijas kaip indeksavimas, pjaustymas ir sujungimas.

Norėdami sukurti sąrašą Python, naudokite laužtinius skliaustus ir kiekvieną elementą atskirkite kableliais:

mano_sąrašas = [1, 2, 3]

Galite pasiekti atskirus sąrašo elementus naudodami jų rodyklę:
my_list[0] # grąžina 1
my_list[1] # grąžina 2
my_list[2] # grąžina 3

Taip pat galite naudoti neigiamus indeksus, kad pasiektumėte elementus iš sąrašo pabaigos:

mano_sąrašas[-1] # grąžina 3 (paskutinis elementas)

Galite įtraukti elementus į sąrašą naudodami metodą append():

my_list.append(4) # prideda 4 prie sąrašo pabaigos

Elementus iš sąrašo galite pašalinti naudodami pašalinimo () arba pop () metodus:

my_list.remove(3) # pašalina 3 iš sąrašo

my_list.pop(2) # pašalina ir grąžina 2 (trečiąjį elementą) iš sąrašo

Pervardykite dublikatus sąraše Python

Pervardyti dublikatus sąraše Python yra įprasta užduotis dirbant su sąrašais. Tai apima pasikartojančių sąrašo elementų pakeitimą unikaliomis reikšmėmis. Tai galima padaryti naudojant funkciją set(), kuri pašalina visus pasikartojančius elementus iš sąrašo ir grąžina naują sąrašą tik su unikaliais elementais. Funkcija set() taip pat gali būti naudojama dublikatams pervardyti, suteikiant jai senų reikšmių susiejimą su naujomis reikšmėmis. Pavyzdžiui, jei turite skaičių sąrašą ir norite pakeisti visus dublikatus atitinkamais kvadratais, galite naudoti šį kodą:

# Sukurkite tuščią žodyną
kartografavimas = {}

# Pakartokite pradinį sąrašą
elementui mano_sąraše:
# Patikrinkite, ar elementas jau yra žodyne
jei elemento nėra žemėlapyje:
# Jei ne, įtraukite jį į žodyną ir priskirkite jo kvadratą kaip vertę
kartografavimas[prekė] = prekė * prekė

# Sukurkite tuščią rezultatų sąrašą
result_list = []

# Dar kartą pakartokite pradinį sąrašą ir pakeiskite kiekvieną elementą kvadratu iš i žodyno mano_sąraše: result_list.append(mapping[i])

# Spausdinti rezultatą spausdinti(rezultatų_sąrašas)

Susijusios naujienos:

Palikite komentarą