Nalutas: palitan ang pangalan ng mga duplicate sa list python

Ang pagpapalit ng pangalan ng mga duplicate sa isang listahan ay maaaring maging isang mahirap na problemang lutasin dahil kailangan mong tukuyin ang mga duplicate at pagkatapos ay magpasya kung paano palitan ang pangalan ng mga ito. Maaari itong maging partikular na mapaghamong kung ang listahan ay naglalaman ng maraming elemento o kung ang mga elemento ay mga kumplikadong bagay. Bukod pa rito, ang pagpapalit ng pangalan ng mga duplicate ay maaaring mangailangan sa iyo na baguhin ang iba pang bahagi ng iyong code na umaasa sa orihinal na mga pangalan ng mga elemento upang patuloy silang gumana nang maayos.

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

_una

# Tinutukoy ng code na ito ang isang function na tinatawag na rename_duplicates na kumukuha sa isang listahan bilang argumento.
def rename_duplicates(lst):

# Lumilikha ito ng isang walang laman na set na tinatawag na seen at isang walang laman na listahan na tinatawag na new_lst.
nakita = set()
new_lst = []

# Pagkatapos ay umuulit ito sa mga item sa listahan at sinusuri kung nasa hanay na sila ng mga nakitang item.
para sa item sa lst:
kung hindi nakikita ang item: # Kung hindi, idinaragdag ito sa hanay ng mga nakitang item at idaragdag ito sa bagong listahan.
seen.add(item)
new_lst.append(item) # Kung oo, lumilikha ito ng natatanging bersyon ng item na iyon sa pamamagitan ng pagdaragdag ng suffix (hal., '_1') sa pangalan nito at sinusuri kung ang bagong likhang item na ito ay nasa hanay na ng mga nakitang item.

iba pa: # Kung gayon, dinaragdagan nito ang suffix hanggang sa makakita ito ng hindi nagamit na bersyon ng pangalan ng item na iyon at idagdag ang bagong likhang item na ito sa parehong hanay ng mga nakitang item at sa bagong listahan bago ibalik ang bagong listahang ito sa pagtatapos ng pagpapatupad nito.

new_item = item + '_1'

while new_item in seen: # increment suffix hanggang unique

suffix = int(new_item.split('_')[-1]) + 1 # kumuha ng huling numero at magdagdag ng isa dito

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

seen.add(bago

Mga listahan sa Python

Ang mga listahan sa Python ay isa sa mga karaniwang ginagamit na istruktura ng data. Ginagamit ang mga ito upang mag-imbak ng isang koleksyon ng mga item, na maaaring maging anumang uri, kabilang ang iba pang mga listahan. Ang mga listahan ay nababago, ibig sabihin, maaari silang baguhin pagkatapos nilang magawa. Sinusuportahan din nila ang mga operasyon tulad ng pag-index, paghiwa, at pagsasama-sama.

Upang lumikha ng isang listahan sa Python, gumamit ka ng mga square bracket at paghiwalayin ang bawat item gamit ang kuwit:

my_list = [1, 2, 3]

Maa-access mo ang mga indibidwal na elemento sa listahan gamit ang kanilang index:
my_list[0] # pagbabalik 1
my_list[1] # pagbabalik 2
my_list[2] # pagbabalik 3

Maaari ka ring gumamit ng mga negatibong indeks upang ma-access ang mga elemento mula sa dulo ng listahan:

my_list[-1] # nagbabalik ng 3 (ang huling elemento)

Maaari kang magdagdag ng mga item sa isang listahan gamit ang append() na paraan:

my_list.append(4) # nagdadagdag ng 4 sa dulo ng listahan

Maaari mong alisin ang mga item mula sa isang listahan gamit ang alinman sa remove() o pop() na pamamaraan:

my_list.remove(3) # nag-aalis ng 3 sa listahan

my_list.pop(2) # ay nag-aalis at nagbabalik ng 2 (ang ikatlong elemento) mula sa listahan

Palitan ang pangalan ng mga duplicate sa listahan sa Python

Palitan ang pangalan ng mga duplicate sa listahan sa Python ay isang karaniwang gawain kapag nakikitungo sa mga listahan. Kabilang dito ang pagpapalit ng mga duplicate na elemento sa isang listahan na may mga natatanging halaga. Magagawa ito gamit ang set() function, na nag-aalis ng lahat ng duplicate na elemento mula sa isang listahan at nagbabalik ng bagong listahan na may mga natatanging elemento lamang. Ang set() function ay maaari ding gamitin upang palitan ang pangalan ng mga duplicate sa pamamagitan ng pagbibigay nito ng pagmamapa ng mga lumang value sa mga bagong value. Halimbawa, kung mayroon kang listahan ng mga numero at gusto mong palitan ang lahat ng duplicate ng kani-kanilang mga parisukat, maaari mong gamitin ang sumusunod na code:

# Lumikha ng walang laman na diksyunaryo
pagmamapa = {}

# Ulitin ang orihinal na listahan
para sa item sa my_list:
# Suriin kung mayroon nang item sa diksyunaryo
kung ang item ay wala sa pagmamapa:
# Kung hindi, idagdag ito sa diksyunaryo at italaga ang parisukat nito bilang halaga
pagmamapa[item] = item * item

# Lumikha ng walang laman na listahan ng resulta
result_list = []

# Ulitin muli ang orihinal na listahan at palitan ang bawat elemento ng parisukat nito mula sa diksyunaryo para sa i sa my_list: result_list.append(mapping[i])

# Print resulta print(result_list)

Kaugnay na mga post:

Mag-iwan ng komento