Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
Patricia Arquetteasal
2024-10-27 01:12:03637semak imbas

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)

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)

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!

Kenyataan:
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