Mengubah suai Elemen Senarai dalam Gelung dalam Python
Dalam Python, cuba mengubah suai elemen senarai sambil mengulanginya menggunakan gelung selalunya menghasilkan hasil yang tidak dijangka . Memahami mekanisme asas tingkah laku ini adalah penting untuk manipulasi senarai yang berkesan.
Sebagai contoh, pertimbangkan kod berikut:
li = ["spam", "eggs"] for i in li: i = "foo" print(li) # Output: ["spam", "eggs"]
Walaupun memberikan "foo" kepada i dalam gelung, kandungan daripada li kekal tidak berubah. Tingkah laku ini berpunca daripada cara Python berulang melalui senarai.
Mekanik Gelung
Gelung untuk i in li berkelakuan serupa dengan yang berikut:
for idx in range(len(li)): i = li[idx] i = 'foo'
Oleh itu, memberikan nilai baharu kepada i tidak mengubah unsur ke-i li. Untuk mengubah suai elemen senarai dalam gelung, pendekatan alternatif diperlukan.
Penyelesaian Alternatif
Satu penyelesaian ialah menggunakan pemahaman senarai:
li = ["foo" for i in li] print(li) # Output: ["foo", "foo"]
Sebagai alternatif, ulangi indeks senarai:
for idx in range(len(li)): li[idx] = 'foo' print(li) # Output: ["foo", "foo"]
Akhir sekali, enumerate juga boleh digunakan:
for idx, item in enumerate(li): li[idx] = 'foo' print(li) # Output: ["foo", "foo"]
Dengan memahami mekanik gelung dan menggunakan kaedah yang sesuai, pengaturcara boleh mengubah suai elemen senarai dengan berkesan dalam gelung dalam Python.
Atas ialah kandungan terperinci Mengapa Tidak Mengubah Suai `i` dalam Gelung Senarai Python Mengubah Senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!