Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Memadam Item dengan Selamat dari Kamus Semasa Lelaran dalam Python?

Bagaimana untuk Memadam Item dengan Selamat dari Kamus Semasa Lelaran dalam Python?

Patricia Arquette
Lepaskan: 2024-10-30 19:12:30
asal
969 orang telah melayarinya

How to Safely Delete Items from a Dictionary During Iteration in Python?

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

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>
Salin selepas log masuk
<code class="python">for k, v in mydict.items():
    if v == 3:
        del mydict[k]</code>
Salin selepas log masuk

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!

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