Forum Python

Please or S’enregistrer to create posts and topics.

Suppression d’un élément pendant une itération dans un dictionnaire Python

Salut à tous,
Je veux supprimer des clés spécifiques dans un dictionnaire pendant que je boucle dessus. Voici mon code :
data = {"a": 1, "b": 2, "c": 3}
for key in data:
if key == "b":
del data[key]
print(data)

Mais j’obtiens cette erreur :
RuntimeError: dictionary changed size during iteration!

Salut webdev,

Vous ne pouvez pas modifier la taille d’un dictionnaire pendant une boucle. Utilisez une copie de la liste des clés :

data = {"a": 1, "b": 2, "c": 3}
for key in list(data.keys()):
    if key == "b":
        del data[key]
print(data)
# Résultat : {"a": 1, "c": 3}