2011-07-09 38 views
27

我想循環輸入字符串的元素,並從字典中獲取它們。我究竟做錯了什麼?TypeError:'字典'對象不可調用

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 
+0

從你給它的例子看起來像一個數組會更好的完成這個任務。 –

回答

4
strikes = [number_map[int(x)] for x in input_str.split()]

你得到使用這些[]括號,沒有這些()字典的元素。

1

number_map[int(x)],你想實際調用地圖上用一個參數

4

您需要使用:

number_map[int(x)] 

注意的方括號!

34

訪問授予密鑰的字典的語法是number_map[int(x)]number_map(int(x))實際上是一個函數調用,但由於number_map不是可調用的,所以會引發異常。

6
strikes = [number_map[int(x)] for x in input_str.split()] 

使用方括號來探索詞典。

13

用方括號訪問字典。

strikes = [number_map[int(x)] for x in input_str.split()] 
2

您需要使用[]訪問字典的元素。不是()

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 ] 
相關問題