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)