Avatar ·

Como remover um valor de um dicionário durante um loop for

📁 python, erro, exemplo

De repente me deparei com esse problema. Durante um loop for em um dicionário, preciso remover entradas dele, mas não importa como eu tente, aparece um erro:

RuntimeError: dictionary changed size during iteration

Eu até tentei fazer um snapshot do dicionário antes da iteração e iterar sobre o clone enquanto removia do original.

Exemplo:

>>> ot={12:'wqe',13:'wqe',14:'wqe',15:'wqe'}>>> ot1=ot>>> for i in ot1:...  del ot[i]... Traceback (most recent call last):  File ""<stdin>