Bagaimana untuk Mengubah Suai Senarai Dalam Fungsi dalam Python: Penugasan Semula vs. Pengubahsuaian Elemen?

DDD
Lepaskan: 2024-10-28 21:03:30
asal
307 orang telah melayarinya

How to Modify a List Within a Function in Python: Reassignment vs. Element Modification?

Mengubah suai Senarai dalam Fungsi

Apabila bekerja dengan senarai dalam fungsi, adalah penting untuk memahami konsep rujukan dan penetapan nilai. Dalam Python, parameter senarai yang dihantar ke fungsi menerima rujukan kepada senarai asal, bukan salinan. Mengubah suai senarai di dalam fungsi secara langsung mengubah senarai asal.

Ilustrasi Masalah

Pertimbangkan kod berikut:

<code class="python">def function1(list_arg):
    a = function2()  # returns an array of numbers
    list_arg = list(a)  # Assign a new list to list_arg

list1 = [0] * 5
function1(list1)
print(list1)
# Output: [0, 0, 0, 0, 0]</code>
Salin selepas log masuk

Dalam contoh ini, kami berhasrat untuk mengubah suai senarai senarai1 yang diluluskan dengan elemen tatasusunan a. Walau bagaimanapun, kod itu tidak berfungsi kerana, dalam baris list_arg = list(a), kami menetapkan senarai baharu kepada list_arg, yang secara berkesan memutuskan pautan ke list1.

Penyelesaian: Mengubah suai Elemen Senarai

Untuk mengubah suai senarai asal dengan betul, kita perlu menetapkan elemen baharu kepada elemen individunya dan bukannya menugaskan semula keseluruhan senarai. Ini boleh dicapai menggunakan penghirisan:

<code class="python">list_arg[:] = list(a)</code>
Salin selepas log masuk

Ini memperuntukkan kandungan list(a) kepada semua elemen dalam list_arg. Penghirisan [:] memilih keseluruhan julat elemen dalam list_arg.

Kesimpulan

Apabila bekerja dengan senarai dalam fungsi, ingat bahawa penugasan semula menggantikan senarai sedia ada, sambil mengubah suai elemen mengekalkan senarai asal. Gunakan penghirisan untuk mengubah suai elemen dalam senarai, memastikan senarai asal kekal utuh.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Suai Senarai Dalam Fungsi dalam Python: Penugasan Semula vs. Pengubahsuaian Elemen?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan