Bisakah Anda mengganti nilai dalam daftar python?

Untuk lebih memahami cara mengganti item dalam daftar Python, Anda akan melihat 3 skenario berikut

  1. Mengganti item dengan item lain
  2. Mengganti beberapa item dengan item lain
  3. 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

['Pear', 'Pear', 'Apple', 'Mango', 'Pear', 'Mango', 'Mango', 'Apple']

(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

['Pear', 'Pear', 'Pear', 'Mango', 'Pear', 'Mango', 'Mango', 'Pear']

(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)
0

Bekerja 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)

my_list = ['Banana','Banana','Apple','Mango','Banana','Mango','Mango','Apple']

print(my_list)
_1

Berikut adalah daftar baru

my_list = ['Banana','Banana','Apple','Mango','Banana','Mango','Mango','Apple']

print(my_list)
_2

Misalkan 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: True

Jika 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

Bagaimana Anda mengganti teks dalam daftar dengan Python?

Di bawah ini adalah 6 metode umum yang digunakan untuk mengganti karakter dalam string saat memprogram dengan python. .
1) Menggunakan metode pemotongan
2) Menggunakan metode replace()
3) Menggunakan struktur data daftar
4) Ganti beberapa karakter dengan karakter yang sama
5) Ganti beberapa karakter dengan karakter yang berbeda
6) Menggunakan modul regex

Bagaimana Anda mengganti banyak nilai dalam daftar dengan Python?

replace() berfungsi beberapa kali untuk mengganti beberapa nilai, Anda dapat menggunakan daftar untuk memetakan elemen yang ingin Anda ganti satu per satu dengan elemen yang ingin Anda ganti.