Zgjidhur: riemërto kopjet në listën python

Riemërtimi i dublikatave në një listë mund të jetë një problem i vështirë për t'u zgjidhur sepse kërkon që ju të identifikoni dublikatat dhe më pas të vendosni se si t'i riemërtoni ato. Kjo mund të jetë veçanërisht sfiduese nëse lista përmban shumë elementë ose nëse elementët janë objekte komplekse. Për më tepër, riemërtimi i dublikatave mund t'ju kërkojë të modifikoni pjesë të tjera të kodit tuaj që mbështeten në emrat origjinalë të elementeve në mënyrë që ato të vazhdojnë të funksionojnë siç duhet.

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

# Ky kod përcakton një funksion të quajtur rename_duplicates që merr një listë si argument.
definoni riemërtimin_duplicates(lst):

# Më pas krijon një grup bosh të quajtur see dhe një listë boshe të quajtur new_lst.
shihet = vendosur()
new_lst = []

# Më pas përsëritet përmes artikujve në listë dhe kontrollon nëse ato janë tashmë në grupin e artikujve të parë.
për artikullin në lst:
nëse artikulli nuk shihet: # Nëse nuk është, e shton atë në grupin e artikujve të parë dhe e shton atë në listën e re.
shihet.shtoj(artikull)
new_lst.append(item) # Nëse është, ai krijon një version unik të atij artikulli duke shtuar një prapashtesë (p.sh., '_1') në emrin e tij dhe kontrollon nëse ky artikull i krijuar rishtazi është tashmë në grupin e artikujve të parë.

else: # Nëse po, ai rrit prapashtesën derisa të gjejë një version të papërdorur të emrit të atij artikulli dhe shton këtë artikull të krijuar rishtazi në grupin e artikujve të parë dhe në listën e re përpara se të kthejë këtë listë të re në fund të ekzekutimit të saj.

artikull i ri = artikull + '_1'

ndërsa artikulli i ri është parë: # prapashtesë increment deri unike

prapashtesë = int(new_item.split('_')[-1]) + 1 # merr numrin e fundit dhe shto një në të

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

shihet.shto (i ri

Listat në Python

Listat në Python janë një nga strukturat e të dhënave më të përdorura. Ato përdoren për të ruajtur një koleksion artikujsh, të cilët mund të jenë të çdo lloji, duke përfshirë listat e tjera. Listat janë të ndryshueshme, që do të thotë se ato mund të ndryshohen pasi të jenë krijuar. Ata gjithashtu mbështesin operacione të tilla si indeksimi, prerja dhe bashkimi.

Për të krijuar një listë në Python, përdorni kllapa katrore dhe ndani çdo artikull me presje:

lista ime = [1, 2, 3]

Ju mund të përdorni elementë individualë në listë duke përdorur indeksin e tyre:
lista ime[0] # kthen 1
lista ime[1] # kthen 2
lista ime[2] # kthen 3

Ju gjithashtu mund të përdorni indekse negative për të hyrë në elementë nga fundi i listës:

my_list[-1] # kthen 3 (elementi i fundit)

Ju mund të shtoni artikuj në një listë duke përdorur metodën append():

my_list.append(4) # shton 4 në fund të listës

Ju mund të hiqni artikujt nga një listë duke përdorur metodat remove() ose pop():

my_list.remove(3) # heq 3 nga lista

my_list.pop(2) # heq dhe kthen 2 (elementin e tretë) nga lista

Riemërtoni dublikatat në listë në Python

Riemërtimi i dublikatave në listë në Python është një detyrë e zakonshme kur kemi të bëjmë me lista. Ai përfshin zëvendësimin e elementeve të dyfishta në një listë me vlera unike. Kjo mund të bëhet duke përdorur funksionin set(), i cili heq të gjithë elementët dublikatë nga një listë dhe kthen një listë të re me vetëm elementë unikë. Funksioni set() mund të përdoret gjithashtu për të riemërtuar dublikatat duke i ofruar atij një hartë të vlerave të vjetra në vlera të reja. Për shembull, nëse keni një listë numrash dhe dëshironi të zëvendësoni të gjitha dublikatat me katrorët e tyre përkatës, mund të përdorni kodin e mëposhtëm:

# Krijoni një fjalor bosh
harta = {}

# Përsëriteni mbi listën origjinale
për artikullin në listën time:
# Kontrolloni nëse artikulli ekziston tashmë në fjalor
nëse artikulli nuk është në hartë:
# Nëse jo, shtoni atë në fjalor dhe caktoni katrorin e tij si vlerë
harta[artikull] = artikull * artikull

# Krijoni një listë të zbrazët të rezultateve
Lista_rezultate = []

# Përsëriteni përsëri listën origjinale dhe zëvendësoni çdo element me katrorin e tij nga fjalori për i në listën time: result_list.append(mapping[i])

# Printimi i rezultatit të printimit (lista_rezultate)

Mesazhe të ngjashme:

Lini një koment