Ngaganti nami duplikat dina daptar tiasa janten masalah anu sesah pikeun direngsekeun sabab peryogi anjeun ngaidentipikasi duplikat teras mutuskeun kumaha ngaganti ngaranana. Ieu tiasa utamana nangtang lamun daptar ngandung loba elemen atawa lamun elemen mangrupa objék kompléks. Sajaba ti, ngaganti ngaran duplikat bisa jadi merlukeun anjeun ngaropéa bagian séjén kode anjeun nu ngandelkeun ngaran aslina tina elemen ambéh maranéhanana terus fungsi leres.
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
_kahiji
# Kode ieu netepkeun fungsi anu disebut rename_duplicates anu nyandak daptar salaku argumen.
def rename_duplicates(lst):
# Éta teras nyiptakeun set kosong anu disebut katingal sareng daptar kosong anu disebut new_lst.
katempo = set()
new_lst = []
# Éta teras-terasan ngalangkungan barang-barang dina daptar sareng mariksa upami aranjeunna parantos aya dina set barang anu katingali.
pikeun item dina lst:
lamun item teu ditingali: # Lamun henteu, eta nambihan ka susunan item katempo tur appends ka daptar anyar.
seen.add(item)
new_lst.append(item) # Lamun kitu, eta nyieun versi unik tina item eta ku nambahkeun a sufiks (misalna '_1') kana ngaranna tur mariksa lamun item nu karek dijieun ieu geus aya dina susunan item katempo.
lain: # Upami kitu, éta nambihan ahiran dugi ka mendakan versi anu henteu kapake tina nami barang éta sareng nambihan barang anu nembé diciptakeun kana set barang anu katingali sareng daptar énggal sateuacan uih deui daptar énggal ieu dina ahir palaksanaanna.
new_item = item + '_1'
bari new_item di katempo: # increment ahiran nepi ka unik
sufiks = int(new_item.split('_')[-1]) + 1 # meunang angka panungtungan & tambahkeun hiji kana eta
new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), sufiks)
ditempo.tambahkeun(anyar
Daptar di Python
Daptar dina Python mangrupikeun salah sahiji struktur data anu paling sering dianggo. Éta dianggo pikeun nyimpen koleksi barang, anu tiasa tina jinis naon waé, kalebet daptar anu sanés. Daptar téh bisa dirobah, hartina maranéhna bisa dirobah sanggeus aranjeunna geus dijieun. Éta ogé ngadukung operasi sapertos indexing, slicing, sareng concatenation.
Pikeun nyieun daptar dina Python, anjeun nganggo kurung kuadrat sareng misahkeun unggal item nganggo koma:
my_list = [1, 2, 3]
Anjeun tiasa ngaksés elemen individu dina daptar nganggo indéksna:
my_list[0] # mulih 1
my_list[1] # mulih 2
my_list[2] # mulih 3
Anjeun oge bisa make indéks négatip pikeun ngakses elemen ti tungtung daptar:
my_list [-1] # mulih 3 (elemen panungtungan)
Anjeun tiasa nambihan item kana daptar nganggo metode append():
my_list.append (4) # nambihan 4 ka tungtung daptar
Anjeun tiasa ngahapus barang tina daptar nganggo metodeu hapus () atanapi pop ():
my_list.remove (3) # ngaluarkeun 3 tina daptar
my_list.pop (2) # ngaluarkeun tur mulih 2 (unsur katilu) tina daptar
Ganti ngaran duplikat dina daptar di Python
Ngaganti ngaran duplikat dina daptar di Python mangrupakeun tugas umum nalika kaayaan daptar. Ieu ngawengku ngaganti elemen duplikat dina daptar kalawan nilai unik. Ieu bisa dipigawé maké set () fungsi, nu miceun kabeh duplikat elemen tina daptar sarta mulih daptar anyar kalawan ukur elemen unik. fungsi set () ogé bisa dipaké pikeun ngaganti ngaran duplikat ku nyadiakeun eta ku pemetaan nilai heubeul ka nilai anyar. Contona, upami anjeun gaduh daptar nomer sareng hoyong ngagentos sadaya duplikat sareng kuadrat masing-masing, anjeun tiasa nganggo kodeu ieu:
# Jieun kamus kosong
pemetaan = {}
# Iterate kana daptar aslina
pikeun item dina my_list:
# Pariksa upami barang parantos aya dina kamus
lamun item teu di pemetaan:
# Upami henteu, tambahkeun kana kamus sareng pasangkeun kuadratna salaku nilai
pemetaan [item] = item * item
# Jieun daptar hasil kosong
daptar_hasil = []
# Iterate deui daptar aslina tur ngaganti unggal unsur ku kuadrat na tina kamus pikeun i di my_list: result_list.append (pemetaan [i])
# Nyitak hasil citak(hasil_daftar)