Bagaimanakah Saya Boleh Menyelesaikan Ralat \'RuntimeError: kamus berubah saiz semasa lelaran\' Semasa Mengalih Keluar Kekunci Berdasarkan Nilai Kosong?

Linda Hamilton
Lepaskan: 2024-11-03 10:21:29
asal
523 orang telah melayarinya

How Can I Resolve the

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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