Em Python, o erro do tÃtulo desse post acontece quando você percorre um dicionário e ele é mudado durante o laço.
Isso pode acontecer quando fazemos:
>>> dicionario = {'nome': 'Julio', 'sobrenome': 'Nobrega'}
>>> for k, v in dicionario.iteritems():
... print v
... del dicionario[k]
...
Nobrega
Traceback (most recent call last):
File "", line 1, in ?
RuntimeError: dictionary changed size during iteration
Se você quer mudar o dicionário durante um laço, use keys():
>>> dicionario = {'nome': 'Julio', 'sobrenome': 'Nobrega'}
>>> for k in dicionario.keys():
... print dicionario[k]
... del dicionario[k]
...
Nobrega
Julio
Isso só é possÃvel porquê keys() retorna uma lista independente do dicionário.
Leave a Reply
You must be logged in to post a comment.