Memadam Item daripada Kamus Semasa Mengulang dalam Python
Apabila bekerja dengan kamus dalam Python, mungkin terdapat keadaan di mana anda perlu mengalih keluar item yang memenuhi kriteria tertentu semasa lelaran. Walaupun secara intuitif, nampaknya melelaran terus ke atas kamus dan memadam item seperti yang ditemui sudah memadai, pendekatan ini bermasalah.
Cabaran dengan Pemadaman Terus semasa Lelaran
Dalam Python 3, memadamkan terus item daripada kamus sambil mengulanginya menimbulkan RuntimeError. Ini kerana mengubah suai saiz kamus semasa lelaran menyebabkan lelaran tidak berfungsi.
Dalam Python 2, pendekatan pemadaman terus ini mengakibatkan ralat jika item yang akan dipadamkan ialah item seterusnya dalam urutan lelaran.
Penyelesaian
Untuk memadamkan item dengan selamat daripada kamus semasa mengulang, berikut ialah penyelesaian yang disyorkan:
Python 3 :
Tukar kekunci kamus kepada senarai menggunakan senarai(mydict.keys()) sebelum lelaran. Ini membolehkan anda mengulangi senarai semasa membuat perubahan pada kamus:
<code class="python">for k in list(mydict.keys()): if mydict[k] == 3: del mydict[k]</code>
Python 2:
Gunakan kaedah kekunci() atau item() untuk buat senarai kunci atau tupel pasangan nilai kunci, masing-masing. Anda kemudiannya boleh mengulangi senarai ini dengan selamat untuk mengalih keluar item tanpa mengganggu lelaran:
<code class="python">for k in mydict.keys(): if k == 'two': del mydict[k]</code>
<code class="python">for k, v in mydict.items(): if v == 3: del mydict[k]</code>
Atas ialah kandungan terperinci Bagaimana untuk Memadam Item dengan Selamat dari Kamus Semasa Lelaran dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!