Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Saya Boleh Memadam Item Dengan Selamat Dari Kamus Semasa Mengulang dalam Python?
Ia selalunya perlu untuk mengubah suai kandungan kamus sambil mengulanginya. Walau bagaimanapun, pemadaman item secara langsung semasa lelaran boleh membawa kepada ralat atau hasil yang tidak konsisten.
Dalam Python 2, pemadaman item dengan del semasa lelaran boleh menyebabkan masalah kerana lelaran menjangkakan saiz kamus kekal malar. Tingkah laku ini mengakibatkan RuntimeError. Menggunakan kekunci atau kaedah item adalah disyorkan:
<code class="python">for k in mydict.keys(): if k == val: del mydict[k] # or for k, v in mydict.items(): if v == val: del mydict[k]</code>
Dalam Python 3 , mydict.keys() mengembalikan iterator, bukan senarai. Mengubah suai kamus semasa lelaran akan menyebabkan RuntimeError. Untuk mengelakkan ini, tukar lelaran kepada senarai sebelum menggunakan del:
<code class="python">for k in list(mydict.keys()): if mydict[k] == 3: del mydict[k]</code>
Pilihan lain ialah menggunakan kaedah pop() untuk mengalih keluar item:
<code class="python">while mydict: k, v = mydict.popitem() if v == 3: mydict[k] = v # or for k in mydict.copy(): if mydict[k] == 3: mydict.pop(k)</code>
Untuk Python 3 , menggunakan kaedah kekunci atau item dengan penukaran senarai disyorkan untuk mengelakkan ralat masa jalan. Untuk Python 2, kekunci atau kaedah item hendaklah digunakan terus untuk mengubah suai kamus dengan selamat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadam Item Dengan Selamat Dari Kamus Semasa Mengulang dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!