Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Tidak Mengubah Suai Elemen Senarai Secara Terus dalam Gelung Python Berfungsi?

Mengapa Tidak Mengubah Suai Elemen Senarai Secara Terus dalam Gelung Python Berfungsi?

Barbara Streisand
Lepaskan: 2024-12-06 16:08:13
asal
846 orang telah melayarinya

Why Doesn't Modifying List Elements Directly in a Python Loop Work?

Mengapa Mengubah Suai Elemen Senarai dalam Gelung Python Terbukti Tidak Berhasil

Semasa melintasi senarai dalam Python, ramai pengaturcara menghadapi halangan yang tidak dijangka: ketidakupayaan untuk mengubah suai elemennya melalui gelung tradisional. Untuk menggambarkan:

li = ["spam", "eggs"]
for i in li:
    i = "foo"

print(li)
# Output: ["spam", "eggs"]
Salin selepas log masuk

Walaupun penugasan jelas "foo" untuk menyenaraikan elemen, senarai itu kekal tidak berubah. Tingkah laku yang membingungkan ini berpunca daripada cara Python mengendalikan gelung dengan senarai.

Di sebalik tabir, gelung Python beroperasi dengan mengulangi indeks senarai. Dalam contoh di atas, untuk setiap indeks (sepadan dengan item dalam senarai), pembolehubah sementara baharu i dicipta. Tugasan kepada i hanya mempengaruhi pembolehubah setempat ini, meninggalkan elemen senarai sebenar tidak disentuh.

Untuk berjaya mengubah suai elemen senarai, seseorang mesti menggunakan pemahaman senarai seperti dalam contoh yang disediakan:

li = ["foo" for i in li]
print(li)
# Output: ["foo", "foo"]
Salin selepas log masuk

Sebagai alternatif, ulangi indeks secara terus:

for idx in range(len(li)):
    li[idx] = "foo"

print(li)
# Output: ["foo", "foo"]
Salin selepas log masuk

Sebagai alternatif, manfaatkan enumerate() fungsi:

for idx, item in enumerate(li):
    li[idx] = "foo"

print(li)
# Output: ["foo", "foo"]
Salin selepas log masuk

Dengan menerima penyelesaian ini, pengaturcara dengan yakin boleh mengubah suai elemen senarai dalam gelung, mengelakkan tugasan sia-sia yang meninggalkan senarai mereka tanpa diubah.

Atas ialah kandungan terperinci Mengapa Tidak Mengubah Suai Elemen Senarai Secara Terus dalam Gelung Python Berfungsi?. 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