Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Mengelakkan \"RuntimeError: kamus berubah saiz semasa lelaran\" dalam Python?
Mengelakkan Ralat "RuntimeError: kamus berubah saiz semasa lelaran"
Mencuba untuk mengubah suai kamus semasa mengulanginya, seperti yang dilihat dalam coretan kod di bawah, boleh mencetuskan ralat "RuntimeError: kamus berubah saiz semasa lelaran":
<code class="python">d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]} for i in d: if not d[i]: d.pop(i)</code>
Untuk mengatasi had ini, pelbagai pendekatan boleh digunakan:
Python 2. x dan 3.x:
Paksa salinan kekunci menggunakan 'senarai':
<code class="python">for i in list(d):</code>
Python 3.x (dan kemudian):
Gunakan 'collections.OrderedDict':
<code class="python">from collections import OrderedDict for i in OrderedDict(d):</code>
Penyelesaian Alternatif:
<code class="python">new_d = {} for key, value in d.items(): if value: new_d[key] = value</code>
<code class="python">keys_to_pop = list(d) for i in keys_to_pop: if not d[i]: d.popitem(i)</code>
Dengan memanfaatkan teknik ini, anda boleh memintas Ralat "RuntimeError: kamus berubah saiz semasa lelaran" semasa mengendalikan kamus dalam Python.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan \"RuntimeError: kamus berubah saiz semasa lelaran\" dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!