Untuk lebih memahami cara mengganti item dalam daftar Python, Anda akan melihat 3 skenario berikut
- Mengganti item dengan item lain
- Mengganti beberapa item dengan item lain
- Mengganti beberapa item dengan beberapa item
Contoh
Untuk memulai dengan contoh sederhana, mari buat daftar buah-buahan berikut
my_list = ['Banana','Banana','Apple','Mango','Banana','Mango','Mango','Apple'] print(my_list)Seperti inilah tampilan daftarnya
['Banana', 'Banana', 'Apple', 'Mango', 'Banana', 'Mango', 'Mango', 'Apple'] _(1) Ganti item dengan item lain
Misalkan Anda ingin mengganti Banana dengan Pear
Anda kemudian dapat menggunakan pemahaman daftar untuk melakukan penggantian
my_list = ['Banana','Banana','Apple','Mango','Banana','Mango','Mango','Apple'] my_list = ['Pear' if i=='Banana' else i for i in my_list] print(my_list)Anda sekarang akan melihat bahwa Pisang diganti dengan Pear di 3 lokasi
(2) Ganti beberapa item dengan item lain
Bagaimana jika Anda ingin mengganti beberapa item dengan item lain?
Misalnya, katakanlah Anda ingin mengganti Pisang dan Apel dengan Pear
Dalam hal ini, Anda dapat menggunakan sintaks berikut untuk melakukan penggantian
my_list = ['Banana','Banana','Apple','Mango','Banana','Mango','Mango','Apple'] my_list = ['Pear' if i in ['Banana','Apple'] else i for i in my_list] print(my_list) _Seperti yang Anda lihat, Banana dan Apple diganti dengan Pear di 5 lokasi
['Pear', 'Pear', 'Pear', 'Mango', 'Pear', 'Mango', 'Mango', 'Pear']Alternatifnya, Anda dapat mencapai hasil yang sama dengan bantuan pipa (“. ”)
my_list = ['Banana','Banana','Apple','Mango','Banana','Mango','Mango','Apple'] my_list = ['Pear' if (i=='Banana') | (i=='Apple') else i for i in my_list] print(my_list) _Anda akan mendapatkan hasil yang sama
(3) Ganti banyak item dengan banyak item
Untuk skenario ini, tujuannya adalah untuk
- Ganti Pisang dengan Pear
- Ganti Apel dengan Semangka
Berikut adalah sintaks yang dapat Anda gunakan
my_list = ['Banana','Banana','Apple','Mango','Banana','Mango','Mango','Apple'] my_list = ['Pear' if i=='Banana' else 'Watermelon' if i=='Apple' else i for i in my_list] print(my_list) _Anda sekarang akan melihat bahwa Pisang diganti dengan Pear (seperti yang disorot dengan warna kuning), sedangkan Apel diganti dengan Semangka (seperti yang disorot dengan warna hijau)
my_list = ['Banana','Banana','Apple','Mango','Banana','Mango','Mango','Apple'] print(my_list) 0Bekerja dengan Data Numerik
Sejauh ini, Anda telah melihat cara bekerja dengan teks/string dalam daftar Anda
Tapi apa daftar Anda berisi data numerik?
Misalnya, mari buat daftar berikut yang berisi data numerik (mis. e. , bilangan bulat)
Berikut adalah daftar baru
my_list = ['Banana','Banana','Apple','Mango','Banana','Mango','Mango','Apple'] print(my_list) _2Misalkan Anda ingin mengganti nilai 22 dengan 99
Anda kemudian dapat menggunakan sintaks di bawah ini untuk melakukan penggantian (perhatikan bahwa tidak seperti skenario sebelumnya, tidak perlu menggunakan tanda kutip di sekitar nilai numerik)
Jika Anda ingin mengganti nilai di tempat, Anda dapat memperbarui daftar asli Anda dengan nilai dari pemahaman daftar dengan menugaskan ke seluruh bagian asli
data = [*range(11)] # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] id_before = id(data) data[:] = [x if x % 2 else None for x in data] data # Out: [None, 1, None, 3, None, 5, None, 7, None, 9, None] id_before == id(data) # check if list is still the same # Out: TrueJika Anda memiliki beberapa nama yang menunjuk ke daftar asli, misalnya Anda menulis data2=data sebelum mengubah daftar dan Anda melewatkan notasi irisan untuk menetapkan ke data, data akan kembali ke daftar yang baru dibuat sementara data2 masih menunjuk ke daftar asli yang tidak berubah
data = [*range(11)] # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] data2 = data id_before = id(data) data = [x if x % 2 else None for x in data] # no [:] here data # Out: [None, 1, None, 3, None, 5, None, 7, None, 9, None] id_before == id(data) # check if list is still the same # Out: False data2 # Out: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]Catatan. Ini bukan rekomendasi untuk secara umum memilih salah satu dari yang lain (mengubah daftar di tempat atau tidak), tetapi perilaku yang harus Anda waspadai