Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Mengubah Suai Senarai Lulus sebagai Parameter dalam Fungsi Tidak Menjejaskan Senarai Asal?

Mengapa Mengubah Suai Senarai Lulus sebagai Parameter dalam Fungsi Tidak Menjejaskan Senarai Asal?

Patricia Arquette
Lepaskan: 2024-10-27 01:12:03
asal
723 orang telah melayarinya

Why Does Modifying a List Passed as a Parameter in a Function Not Affect the Original List?

Mengubah suai Senarai Dalam Fungsi

Dalam pengaturcaraan, adalah perkara biasa untuk bekerja dengan senarai, terutamanya dalam fungsi yang memanipulasi data. Walau bagaimanapun, isu timbul apabila cuba mengubah suai senarai yang diluluskan sebagai parameter dalam fungsi.

Pertimbangkan coretan kod berikut:

def function1(list_arg):
    a = function2()  # returns an array of numbers
    list_arg = list(a)

list1 = [0] * 5
function1(list1)
Salin selepas log masuk

Anda mungkin menjangkakan list1 akan diubah suai selepas memanggil function1, tetapi ia tetap tidak berubah. Ini kerana apabila memberikan sesuatu kepada pembolehubah list_arg, ia menunjuk kepada nilai baharu. Walau bagaimanapun, senarai asal tidak terjejas.

Untuk mengatasinya, anda boleh mengubah suai elemen senarai asal sebaliknya:

def function1(list_arg):
    a = function2()  # returns an array of numbers
    list_arg[:] = list(a)
Salin selepas log masuk

Menggunakan list_arg[:] berkesan menggantikan semua elemen senarai asal. Walau bagaimanapun, perlu diingat bahawa pengubahsuaian di tempat seperti ini boleh mengelirukan dan mungkin tidak selalu menjadi pendekatan terbaik.

Atas ialah kandungan terperinci Mengapa Mengubah Suai Senarai Lulus sebagai Parameter dalam Fungsi Tidak Menjejaskan Senarai Asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan