Rumah > Artikel > pembangunan bahagian belakang > Bolehkah Anda Mengubah Suai Kamus Dengan Selamat Semasa Mengulang dengan `iteritems()` dalam Python?
Bolehkah Kamus Berulang Mengubah Suai Item Pendasar dengan Selamat?
Apabila melintasi kamus Python menggunakan iteritems(), pengubahsuaian pada kamus mungkin membawa kepada perkara yang tidak dijangka keputusan. Mengalih keluar item (cth., del d[f(k)]) boleh mencetuskan "RuntimeError: kamus berubah saiz semasa lelaran."
Dokumentasi Rasmi:
Menurut dokumentasi Python, seseorang tidak seharusnya mengubah suai kamus semasa lelaran. Kaedah iteritems() berulang melalui salinan kunci dan nilai kamus, tetapi bukan kamus asas itu sendiri. Oleh itu, pengubahsuaian terus pada kamus (seperti pemadaman atau penambahan item) tidak akan ditunjukkan dalam lelaran.
Amalan Selamat:
Untuk mengelakkan isu ini, dokumentasi mencadangkan penggunaan d.copy().items() untuk mencipta salinan bebas kamus sebelum lelaran. Sebagai alternatif, seseorang boleh melelar melalui senarai kunci dan menggunakan del d[key] atau d[key] = newValue dalam gelung.
Pengubahsuaian Separa:
Sementara menambahkan item pada kunci baharu boleh menyebabkan isu, mengubah suai nilai sedia ada secara amnya selamat. Walau bagaimanapun, ambil perhatian bahawa mengubah suai nilai pada kunci sedia ada boleh mengubah nilai cincangnya, yang berpotensi menjejaskan kedudukannya dalam kamus.
Atas ialah kandungan terperinci Bolehkah Anda Mengubah Suai Kamus Dengan Selamat Semasa Mengulang dengan `iteritems()` dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!