Suppression d'un élément d'un dictionnaire python
Citation de robertoalpa le 11 décembre 2024, 8 h 46 minSalut à tous,
Je cherche à supprimer une clé spécifique d'un dictionnaire tout en itérant dessus. Voici mon code actuel :
data = {"a": 1, "b": 2, "c": 3}
for key in data:
if key == "b":
del data[key]
print(data)
Cependant, lorsque j'exécute ce code, j'obtiens l'erreur suivante :RuntimeError: dictionary changed size during iteration
Comment puis-je contourner ce problème tout en atteignant mon objectif ? Merci !
Salut à tous,
Je cherche à supprimer une clé spécifique d'un dictionnaire tout en itérant dessus. Voici mon code actuel :
data = {"a": 1, "b": 2, "c": 3}
for key in data:
if key == "b":
del data[key]
print(data)
Cependant, lorsque j'exécute ce code, j'obtiens l'erreur suivante :
RuntimeError: dictionary changed size during iteration
Comment puis-je contourner ce problème tout en atteignant mon objectif ? Merci !
Citation de PythonTech le 11 décembre 2024, 9 h 47 minBonjour robertoalpa,
Cette erreur se produit parce qu'on ne peut pas modifier la taille d'un dictionnaire en le parcourant. Pour résoudre ce problème, on peut utiliser une copie des clés avec list(data.keys()) :
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}
Bonjour robertoalpa,
Cette erreur se produit parce qu'on ne peut pas modifier la taille d'un dictionnaire en le parcourant. Pour résoudre ce problème, on peut utiliser une copie des clés avec list(data.keys()) :
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}