Selesai: menamakan semula pendua dalam senarai python

Menamakan semula pendua dalam senarai boleh menjadi masalah yang sukar untuk diselesaikan kerana ia memerlukan anda mengenal pasti pendua dan kemudian memutuskan cara untuk menamakan semula pendua tersebut. Ini boleh menjadi sangat mencabar jika senarai mengandungi banyak elemen atau jika elemen adalah objek kompleks. Selain itu, menamakan semula pendua mungkin memerlukan anda mengubah suai bahagian lain kod anda yang bergantung pada nama asal unsur supaya ia terus berfungsi dengan baik.

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

_st

# Kod ini mentakrifkan fungsi yang dipanggil rename_duplicates yang mengambil senarai sebagai hujah.
def rename_duplicates(lst):

# Ia kemudian mencipta set kosong dipanggil dilihat dan senarai kosong dipanggil new_lst.
dilihat = set()
new_lst = []

# Ia kemudian melelang melalui item dalam senarai dan menyemak sama ada ia sudah berada dalam set item yang dilihat.
untuk item dalam lst:
jika item tidak dilihat: # Jika tidak, ia menambahkannya pada set item yang dilihat dan menambahkannya pada senarai baharu.
dilihat.tambah(item)
new_lst.append(item) # Jika ya, ia mencipta versi unik item itu dengan menambahkan akhiran (cth, '_1') pada namanya dan menyemak sama ada item yang baru dicipta ini sudah berada dalam set item yang dilihat.

else: # Jika ya, ia menambah akhiran sehingga ia menemui versi yang tidak digunakan bagi nama item itu dan menambahkan item yang baru dicipta ini pada kedua-dua set item yang dilihat dan pada senarai baharu sebelum mengembalikan senarai baharu ini pada penghujung pelaksanaannya.

new_item = item + '_1'

manakala new_item dalam dilihat: # penambahan akhiran sehingga unik

akhiran = int(new_item.split('_')[-1]) + 1 # dapatkan nombor terakhir & tambah satu padanya

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

dilihat.tambah(baru

Senarai dalam Python

Senarai dalam Python adalah salah satu struktur data yang paling biasa digunakan. Ia digunakan untuk menyimpan koleksi item, yang boleh dari sebarang jenis, termasuk senarai lain. Senarai boleh berubah, bermakna ia boleh diubah selepas ia dibuat. Mereka juga menyokong operasi seperti pengindeksan, penghirisan dan penggabungan.

Untuk membuat senarai dalam Python, anda menggunakan kurungan segi empat sama dan pisahkan setiap item dengan koma:

my_list = [1, 2, 3]

Anda boleh mengakses elemen individu dalam senarai menggunakan indeksnya:
my_list[0] # pulangan 1
my_list[1] # pulangan 2
my_list[2] # pulangan 3

Anda juga boleh menggunakan indeks negatif untuk mengakses elemen dari hujung senarai:

my_list[-1] # mengembalikan 3 (elemen terakhir)

Anda boleh menambah item pada senarai menggunakan kaedah append():

my_list.append(4) # menambah 4 pada penghujung senarai

Anda boleh mengalih keluar item daripada senarai menggunakan kaedah remove() atau pop():

my_list.remove(3) # mengeluarkan 3 daripada senarai

my_list.pop(2) # mengalih keluar dan mengembalikan 2 (elemen ketiga) daripada senarai

Namakan semula pendua dalam senarai dalam Python

Namakan semula pendua dalam senarai dalam Python adalah tugas biasa apabila berurusan dengan senarai. Ia melibatkan menggantikan elemen pendua dalam senarai dengan nilai unik. Ini boleh dilakukan menggunakan fungsi set(), yang mengalih keluar semua elemen pendua daripada senarai dan mengembalikan senarai baharu dengan hanya elemen unik. Fungsi set() juga boleh digunakan untuk menamakan semula pendua dengan menyediakannya dengan pemetaan nilai lama kepada nilai baharu. Sebagai contoh, jika anda mempunyai senarai nombor dan ingin menggantikan semua pendua dengan petak masing-masing, anda boleh menggunakan kod berikut:

# Buat kamus kosong
pemetaan = {}

# Lelaran ke atas senarai asal
untuk item dalam my_list:
# Semak sama ada item sudah wujud dalam kamus
jika item tiada dalam pemetaan:
# Jika tidak, tambahkannya pada kamus dan tetapkan kuasa duanya sebagai nilai
pemetaan[item] = item * item

# Buat senarai hasil kosong
senarai_hasil = []

# Ulangi senarai asal sekali lagi dan gantikan setiap elemen dengan segi empat samanya daripada kamus untuk i dalam my_list: result_list.append(mapping[i])

# Cetak hasil cetakan(senarai_hasil)

Related posts:

Tinggalkan komen