Penyelesaian untuk "RuntimeError:kamus berubah saiz semasa lelaran" Ralat
Pertimbangkan senario di mana anda menghadapi "RuntimeError: kamus berubah saiz semasa lelaran" apabila cuba mengalih keluar pasangan nilai kunci berdasarkan nilai kosong daripada kamus senarai. Kod di bawah menunjukkan ralat:
<code class="python">d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]} for i in d: if not d[i]: d.pop(i)</code>
Ralat berpunca daripada peraturan yang mengubah suai kamus (menambah atau mengalih keluar masukan) semasa lelaran ke atasnya membawa kepada tingkah laku yang tidak dijangka. Untuk memintas pengehadan ini dan berjaya menyelesaikan isu ini, anda boleh menggunakan pendekatan berikut:
Menggunakan salinan kekunci
Python menyediakan helah yang kemas untuk mengatasi masalah had lelaran:
<code class="python">for i in list(d):</code>
Dengan mencipta senarai kunci, anda pada asasnya mencipta salinan kunci kamus. Ini membolehkan anda mengulangi salinan sambil membuat perubahan pada kamus itu sendiri.
Menggunakan kaedah .keys() (Python 2.x sahaja)
Dalam Python 2 .x, kaedah .keys() menyediakan fungsi yang serupa, dengan berkesan mencipta salinan kunci:
<code class="python">for i in d.keys():</code>
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa dalam Python 3.x, .keys() mengembalikan a lihat objek, dan penyelesaiannya tidak akan digunakan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelesaikan Ralat \'RuntimeError: kamus berubah saiz semasa lelaran\' Semasa Mengalih Keluar Kekunci Berdasarkan Nilai Kosong?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!