Utiliser la mauvaise méthode

Utiliser la mauvaise méthode - Python - Programmation

Marsh Posté le 23-08-2023 à 14:44:29    

Bonjour à tous,
 
J'essaie de supprimer une certaine clé de mon dictionnaire en utilisant la technique dict.pop() de cet article sur le scaler, mais je rencontre des problèmes. Le code est comme suit:

Code :
  1. my_dict = {'a': 1, 'b': 2, 'c': 3}
  2. key_to_remove = 'c'
  3. popped_value = my_dict.pop()


J'ai pensé que passer la clé à pop() suffirait, mais cela renvoie une TypeError. Je ne sais pas comment utiliser correctement la fonction pop() pour supprimer une clé et obtenir la valeur qui y est liée. Quelqu'un peut-il m'aider à comprendre le problème ?

Reply

Marsh Posté le 23-08-2023 à 14:44:29   

Reply

Marsh Posté le 23-08-2023 à 16:03:22    

Je ne fais pas de Python, mais ça me paraitrait assez logique que Pop attende en paramètre la clé de l'élément à sortir, dans ton cas 'a', 'b' ou 'c'.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 23-08-2023 à 16:10:15    

Apparemment il a essayé de faire popped_value = my_dict.pop(key_to_remove) mais ca lui a renvoyé une erreur de type.
Dans la page que tu cite en exemple, les clé sont des integer et les value des String, toi tu fais le contraire, je ne connais pas non plus très bien Python mais tu devrait creuser de ce coté...


---------------
D3
Reply

Marsh Posté le 23-08-2023 à 16:29:45    

Bah dans son exemple du post, il a surtout appelé pop sans rien lui passer du tout, key_to_remove s'est perdu en route.
 
J'imagine que les dicos en python sont complètement génériques, tant que tu ne changes pas de type en cours de route, y a pas de raison que lui ne soit pas content.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 23-08-2023 à 18:23:20    

Effectivement dans son code il ne passe rien en paramètre mais vu la phrase "J'ai pensé que passer la clé à pop() suffirait" je me suis dit qu'il avait essayé...
 
En fait probablement que non car après une recherche Google on peut bien avoir des string en clé...
https://courspython.com/dictionnaire.html


---------------
D3
Reply

Marsh Posté le 20-09-2023 à 03:22:57    

mechkurt a écrit :

Effectivement dans son code il ne passe rien en paramètre mais vu la phrase "J'ai pensé que passer la clé à pop() suffirait" je me suis dit qu'il avait essayé...

 

En fait probablement que non car après une recherche Google on peut bien avoir des string en clé...
https://courspython.com/dictionnaire.html

 

Surement oui ! Voilà le code corrigé :

 
Code :
  1. my_dict = {'a': 1, 'b': 2, 'c': 3}
  2. key_to_remove = 'c'
  3. popped_value = my_dict.pop(key_to_remove)
  4. print(f'valeur pop:{popped_value}')
  5. print(f'mon dico:{my_dict}')]
 

Résultat :
valeur pop:3
mon dico:{'a': 1, 'b': 2}


Message édité par Durabrite le 20-09-2023 à 03:24:55
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed