J'essaie de faire une boucle sur des éléments d'une chaîne d'entrée et de les obtenir à partir d'un dictionnaire. Qu'est-ce que je fais mal?
number_map = { 1: -3, 2: -2, 3: -1, 4: 1, 5: 2, 6: 3 }
input_str = raw_input("Enter something: ")
strikes = [number_map(int(x)) for x in input_str.split()]
strikes = [number_map(int(x)) for x in input_str.split()]
TypeError: 'dict' object is not callable
La syntaxe pour accéder à un dict donné à une clé est number_map[int(x)]
. number_map(int(x))
serait en fait un appel de fonction, mais comme number_map
n'est pas appelable, une exception est déclenchée.
Accédez au dictionnaire avec des crochets.
strikes = [number_map[int(x)] for x in input_str.split()]
Vous devez utiliser []
pour accéder aux éléments d'un dictionnaire. Pas ()
number_map = { 1: -3, 2: -2, 3: -1, 4: 1, 5: 2, 6: 3 }
input_str = raw_input("Enter something: ")
strikes = [number_map[int(x)] for x in input_str ]
strikes = [number_map[int(x)] for x in input_str.split()]
Utilisez les crochets pour explorer les dictionnaires.
[]
/, et non ces()
.
Vous devez utiliser:
number_map[int(x)]
Notez les crochets!
c'est number_map[int(x)]
, vous avez essayé d'appeler la carte avec un seul argument
Changer "()" en "[]" Parce que "()" est utilisé pour les fonctions