Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengubah Suai Senarai Dalam Fungsi dalam Python: Lulus Rujukan atau Pengubahsuaian Di Tempat?

Bagaimana untuk Mengubah Suai Senarai Dalam Fungsi dalam Python: Lulus Rujukan atau Pengubahsuaian Di Tempat?

Patricia Arquette
Patricia Arquetteasal
2024-10-27 06:12:03840semak imbas

How to Modify a List Within a Function in Python: Pass by Reference or In-Place Modification?

Mengubah suai Senarai di dalam Fungsi

Apabila bekerja dengan parameter senarai dalam fungsi, rujukan dihantar ke fungsi menghala ke senarai asal. Sebarang pengubahsuaian yang dibuat pada pembolehubah list_arg dalam fungsi terhad kepada skop setempatnya dan tidak akan menjejaskan senarai asal.

Untuk memintas isu ini dan mengubah suai senarai asal, seseorang perlu menetapkan elemen secara langsung pada senarai bukannya menugaskan semula keseluruhan senarai kepada nilai baharu. Berikut ialah contoh:

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

list1 = [0] * 5
function1(list1)
print(list1)  # [1, 2, 3, 4, 5]

Dalam kod yang diubah suai ini, kami menggunakan tatatanda keratan list_arg[:] untuk memperuntukkan elemen list(a) kepada senarai asal, mengubah suai senarai yang ada dengan berkesan.

Perlu ambil perhatian bahawa walaupun pengubahsuaian di tempat mungkin kelihatan mudah, ia boleh menjadi sukar untuk difahami dan boleh menyebabkan kekeliruan bagi pembangun yang mengekalkan kod tersebut. Penugasan semula eksplisit biasanya lebih disukai untuk kejelasan dan kebolehbacaan.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Suai Senarai Dalam Fungsi dalam Python: Lulus Rujukan atau Pengubahsuaian Di Tempat?. 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