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
Barbara Streisandasal
2024-12-28 01:49:09428semak imbas

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'

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]

Atau, rentasi indeks secara eksplisit:

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

Sebagai alternatif, enumerate boleh digunakan untuk memudahkan proses:

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

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!

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