0
votes

Comment ajouter une valeur d'entrée à une liste dans un dictionnaire?

J'essaie d'ajouter une valeur entrée par l'utilisateur à lister dans un dictionnaire, mais il affiche une erreur:

AttributeError: "str 'objet n'a pas d'attribut" APPEND " P> blockQuote>

Quelqu'un peut-il découvrir l'erreur? p>

Dict = {} # an empty dictionary to be filled later

Dict["SomeKey"] = []

Dict["SomeKey"] = input ("Enter a value: ") # it works

Dict["SomeKey"].append(input("Enter another value: ")) # This part gives me error !!!


1 commentaires

C'est une chaîne pour vous ... ( entrée retourne une chaîne)


4 Réponses :


0
votes

Vous voudrez peut-être l'utiliser comme si: xxx

car la fonction entrée renvoie une chaîne qui signifie dict ["quelqu'un"] est également une chaîne qui n'a pas la fonction append .


2 commentaires

Mais cela supprimera les premières données d'entrée ... Je dois ajouter les données nouvellement entrées à la précédente!


Édité pour expliquer.



0
votes

Cette trace Retour vous aidera à résoudre votre problème.

>>> 'append' in dir(str)
False
>>> 'append' in dir(list)
True


0 commentaires

0
votes

J'ai écrit le code suivant et ça fonctionne bien tant que vous l'avez déjà aussi longtemps que vous avez déjà "quelqu'un" dans le dictionnaire et vous entrez dans les entrées utilisateur dans des guillemets doubles.

Dict = {}
Dict["SomeKey"] = []
Dict["SomeKey"].append(input("Enter another value:"))
Dict["SomeKey"].append(input("Enter another value:"))
print Dict

O/P
sankalp- î‚° ~/Documents î‚° python p.py                                                                                                            
 ✔  2027  00:59:30
Enter another value:"SomeValue1"
Enter another value:"Somevalue2"

{'SomeKey': ['SomeValue1', 'Somevalue2']}


0 commentaires

0
votes

de la partie précédente de votre exemple vous définissez dict ["quelqu'un"] à une chaîne.

Disons que vous avez dactylographié dans "FOO" pour l'entrée à l'étape 3 de votre exemple, alors dict ["" "]. Ajoutez (" autre_string ") (J'ai utilisé" autre_string "comme Le résultat de ce que vous avez peut-être saisi pour l'entrée). Ensuite, cela devient "foo" .append ("autre_string). Mais" foo ", une chaîne, n'a pas de .append () méthode.


0 commentaires