Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Tidak Mengubah Suai Elemen Senarai Secara Terus dalam Gelung Python Berfungsi?
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"]
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"]
Sebagai alternatif, ulangi indeks secara terus:
for idx in range(len(li)): li[idx] = "foo" print(li) # Output: ["foo", "foo"]
Sebagai alternatif, manfaatkan enumerate() fungsi:
for idx, item in enumerate(li): li[idx] = "foo" print(li) # Output: ["foo", "foo"]
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!