Éviter l'erreur "RuntimeError : le dictionnaire a changé de taille pendant l'itération"
Tentative de modification d'un dictionnaire lors d'une itération, comme indiqué dans le l'extrait de code ci-dessous, peut déclencher l'erreur « RuntimeError : le dictionnaire a changé de taille pendant l'itération » :
d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]}
for i in d:
if not d[i]:
d.pop(i)
Pour surmonter cette limitation, diverses approches peuvent être utilisées :
Python 2.x et 3.x :
Forcer une copie des clés en utilisant 'list':
for i in list(d):
Python 3.x (et versions ultérieures) :
Utilisez 'collections.OrderedDict' :
from collections import OrderedDict
for i in OrderedDict(d):
Solutions alternatives :
new_d = {}
for key, value in d.items():
if value:
new_d[key] = value
keys_to_pop = list(d)
for i in keys_to_pop:
if not d[i]:
d.popitem(i)
En tirant parti de ces techniques, vous pouvez contourner l'erreur « RuntimeError : le dictionnaire a changé de taille pendant l'itération » lors de la gestion des dictionnaires en Python.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3