Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Saya Tidak Boleh Mengubah Suai Senarai Python Secara Terus Dalam Gelung `untuk`?

Mengapa Saya Tidak Boleh Mengubah Suai Senarai Python Secara Terus Dalam Gelung `untuk`?

Barbara Streisand
Lepaskan: 2024-12-28 01:49:09
asal
445 orang telah melayarinya

Why Can't I Modify a Python List Directly Within a `for` Loop?

Teka-teki Pengubahsuaian Senarai Python

Apabila merentasi senarai dalam Python menggunakan gelung for, pengguna mungkin menghadapi ketidakupayaan yang tidak dijangka untuk mengubah elemennya tanpa menggunakan pemahaman senarai.

Mengapa Ketidakbolehcapaian?

Inti isu terletak pada tingkah laku binaan gelung for i in li. Secara dalaman, ia berulang seperti berikut:

for idx in range(len(li)):
    i = li[idx]
    i = 'foo'
Salin selepas log masuk

Seperti yang dilihat, i pada mulanya diberikan rujukan kepada elemen dalam senarai. Sebarang pengubahsuaian berikutnya kepada i hanya mempengaruhi pembolehubah setempat, bukan item senarai itu sendiri.

Menyelesaikan Dilema

Untuk menangani perkara ini, seseorang boleh sama ada memanfaatkan pemahaman senarai:

li = ["foo" for i in li]
Salin selepas log masuk

Atau, rentasi indeks secara eksplisit:

for idx in range(len(li)):
    li[idx] = 'foo'
Salin selepas log masuk

Sebagai alternatif, enumerate boleh digunakan untuk memudahkan proses:

for idx, item in enumerate(li):
    li[idx] = 'foo'
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mengubah Suai Senarai Python Secara Terus Dalam Gelung `untuk`?. 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