Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa menukar senarai 'y' dalam Python juga menukar senarai 'x'?

Mengapa menukar senarai 'y' dalam Python juga menukar senarai 'x'?

WBOY
Lepaskan: 2023-08-20 11:25:14
ke hadapan
1548 orang telah melayarinya

Mengapa menukar senarai y dalam Python juga menukar senarai x?

Contoh

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)
Salin selepas log masuk

Output

('Value of y = ', [])
('Value of x = ', [])

After changing...
('Value of y = ', [25])
('Value of x = ', [25])
Salin selepas log masuk

Di atas, kami melihat bahawa mengemas kini senarai y juga akan menukar senarai x.

Kita nampak hasil di atas kerana −

  • Senarai boleh berubah, iaitu anda boleh menukar kandungannya.
  • Pembolehubah ialah nama yang menunjuk kepada objek.

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

Contoh

ialah:

Contoh

# 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)
Salin selepas log masuk

Output

('Value of y = ', 5)
('Value of x = ', 5)

After changing...
('Value of y = ', 5)
('Value of x = ', 6)
Salin selepas log masuk

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan