Dalam artikel ini, kita akan melihat jika anda menukar senarai, katakan senarai y, ia juga akan menukar senarai x. Untuk melakukan ini, mari kita lihat contoh dengan dua senarai dan cuba gunakan append() dan cetak untuk output -
x = [] y = x print("Value of y = ",y) print("Value of x = ",x) y.append(25) print("\nAfter changing...") print("Value of y = ",y) print("Value of x = ",x)
('Value of y = ', []) ('Value of x = ', []) After changing... ('Value of y = ', [25]) ('Value of x = ', [25])
Di atas, kami melihat bahawa mengemas kini senarai y juga akan menukar senarai x.
Kita nampak hasil di atas kerana −
Di atas, tulisan y = x tidak mencipta salinan senarai. Ia mencipta pembolehubah baru y yang merujuk kepada objek yang sama seperti yang dirujuk oleh x. Ini bermakna hanya terdapat satu objek, senarai, dan kedua-dua x dan y merujuk kepadanya.
Apabila append() dipanggil, kandungan objek berubah-ubah berubah daripada [] kepada [25]. Oleh kerana kedua-dua pembolehubah menghala ke objek yang sama, nilai yang diubah suai boleh diakses menggunakan sama ada pembolehubah [25].
Andaikan kita menetapkan objek tidak berubah kepada x, maka x dan y tidak lagi sama. Ini kerana integer tidak boleh berubah -
Terjemahan bahasa Cina bagi# ints are immutable x = 5 y = x print("Value of y = ",y) print("Value of x = ",x) # We are creating a new object x = x + 1 print("\nAfter changing...") print("Value of y = ",y) print("Value of x = ",x)
('Value of y = ', 5) ('Value of x = ', 5) After changing... ('Value of y = ', 5) ('Value of x = ', 6)
Apabila kita menulis x = x + 1, kita tidak mengubah int 5 dengan meningkatkan nilainya. Sebaliknya, kami mencipta objek baharu (int 6) dan memberikannya kepada x. Selepas tugasan ini, kami mempunyai dua objek (int 6 dan 5) dan dua pembolehubah yang merujuknya.
Oleh itu,
Objek boleh ubah − Jika kita mempunyai objek boleh ubah, seperti senarai, kamus, set, dll., kita boleh menggunakan beberapa operasi khusus untuk menukarnya dan semua pembolehubah yang merujuknya akan melihat perubahan ini.
Objek Kekal − Jika kita mempunyai objek tidak berubah seperti str, int, tuple, dll., semua pembolehubah yang merujuknya akan sentiasa melihat nilai yang sama, tetapi operasi yang menukar nilai itu kepada nilai baharu akan sentiasa mengembalikan objek baharu .
Atas ialah kandungan terperinci Mengapa menukar senarai 'y' dalam Python juga menukar senarai 'x'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!