Diselesaikan: ganti nama duplikat dalam daftar python

Mengganti nama duplikat dalam daftar bisa menjadi masalah yang sulit dipecahkan karena mengharuskan Anda mengidentifikasi duplikat dan kemudian memutuskan cara mengganti namanya. Ini bisa sangat menantang jika daftar berisi banyak elemen atau jika elemennya adalah objek yang kompleks. Selain itu, mengganti nama duplikat mungkin mengharuskan Anda untuk memodifikasi bagian lain dari kode Anda yang bergantung pada nama asli elemen agar dapat 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

_dst

# Kode ini mendefinisikan fungsi yang disebut rename_duplicates yang menggunakan daftar sebagai argumen.
def ganti nama_duplikat(pertama):

# Ini kemudian membuat set kosong bernama seen dan list kosong bernama new_lst.
terlihat = set ()
baru_lst = []

# Ini kemudian beralih melalui item dalam daftar dan memeriksa apakah item tersebut sudah ada di set item yang terlihat.
untuk item pertama:
jika item tidak terlihat: # Jika tidak, ia menambahkannya ke kumpulan item yang terlihat dan menambahkannya ke daftar baru.
dilihat.tambahkan(item)
new_lst.append(item) # Jika ya, ia akan membuat versi unik dari item tersebut dengan menambahkan sufiks (mis., '_1') ke namanya dan memeriksa apakah item yang baru dibuat ini sudah ada dalam kumpulan item yang terlihat.

lain: # Jika demikian, itu menambah sufiks hingga menemukan versi yang tidak digunakan dari nama item tersebut dan menambahkan item yang baru dibuat ini ke kumpulan item yang terlihat dan ke daftar baru sebelum mengembalikan daftar baru ini di akhir pelaksanaannya.

item_baru = item + '_1'

sementara item_baru terlihat: # akhiran kenaikan hingga unik

akhiran = int(new_item.split('_')[-1]) + 1 # dapatkan nomor terakhir & tambahkan satu ke dalamnya

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

dilihat.tambahkan(baru

Daftar dengan Python

Daftar di Python adalah salah satu struktur data yang paling umum digunakan. Mereka digunakan untuk menyimpan kumpulan item, yang bisa dari jenis apa saja, termasuk daftar lainnya. Daftar dapat berubah, artinya dapat diubah setelah dibuat. Mereka juga mendukung operasi seperti pengindeksan, pemotongan, dan penggabungan.

Untuk membuat daftar dengan Python, Anda menggunakan tanda kurung siku dan memisahkan setiap item dengan koma:

daftar_saya = [1, 2, 3]

Anda dapat mengakses elemen individual dalam daftar menggunakan indeksnya:
my_list[0] # mengembalikan 1
my_list[1] # mengembalikan 2
my_list[2] # mengembalikan 3

Anda juga dapat menggunakan indeks negatif untuk mengakses elemen dari akhir daftar:

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

Anda dapat menambahkan item ke daftar menggunakan metode append() :

my_list.append(4) # menambahkan 4 ke akhir daftar

Anda dapat menghapus item dari daftar menggunakan metode remove() atau pop() :

my_list.remove(3) # menghapus 3 dari daftar

my_list.pop(2) # menghapus dan mengembalikan 2 (elemen ketiga) dari daftar

Ganti nama duplikat dalam daftar dengan Python

Mengganti nama duplikat dalam daftar dengan Python adalah tugas umum saat menangani daftar. Ini melibatkan penggantian elemen duplikat dalam daftar dengan nilai unik. Ini dapat dilakukan dengan menggunakan fungsi set() , yang menghapus semua elemen duplikat dari daftar dan mengembalikan daftar baru dengan hanya elemen unik. Fungsi set() juga dapat digunakan untuk mengganti nama duplikat dengan menyediakan pemetaan nilai lama ke nilai baru. Misalnya, jika Anda memiliki daftar angka dan ingin mengganti semua duplikat dengan kotaknya masing-masing, Anda dapat menggunakan kode berikut:

# Buat kamus kosong
pemetaan = {}

# Ulangi daftar asli
untuk item di my_list:
# Periksa apakah item sudah ada di kamus
jika item tidak ada dalam pemetaan:
# Jika tidak, tambahkan ke kamus dan tetapkan kuadratnya sebagai nilai
pemetaan[item] = item * item

# Buat daftar hasil kosong
daftar_hasil = []

# Ulangi daftar asli lagi dan ganti setiap elemen dengan kuadratnya dari kamus untuk i di my_list: result_list.append(mapping[i])

# Cetak hasil cetak (result_list)

Pos terkait:

Tinggalkan Komentar