2013-05-31 39 views
0

道歉爲noobness訪問字典。的Python:使用可變作爲密鑰

我試圖通過使用我先前已設定一個變量來訪問字典。

myvar1 = 1 
mydict = {'1': ['apple', 20, 80, 40], 
    '2': ['orange', 81, 400, 100]} 

myvar2 = mydict[myvar1][0] 
print(myvar2) 

這給了我KeyError異常:1

我也試過

myvar2 = mydict['myvar1'][0] 

這給了我KeyError異常: 'myvar1'

顯然我失去了一些東西基本。

+0

謝謝大家。那樣做了。 – user2439991

回答

3

myvar1是一個整數,mydict使用字符串作爲鍵。要麼將myvar1更改爲字符串,要麼將字典更改爲使用整數作爲鍵。

所有的
myvar1 = 1 
mydict = {1: ['apple', 20, 80, 40], 
      2: ['orange', 81, 400, 100]} 
1

嘗試:

myvar1 = '1' 
在您的第一條語句

。該1你使用是一個整數,而不是一個字符作爲'1'

In [1]: 1=='1' 
Out[1]: False 

In [2]: str(1)=='1' 
Out[2]: True 
1
myvar1 = 1 
mydict = {1: ['apple', 20, 80, 40], 
      2: ['orange', 81, 400, 100]} 

myvar2 = mydict[myvar1][0] 
print(myvar2) 

首先,你的「鑰匙」在mydict,而不是整數myvar = 1一個整數,所以你需要保持鍵作爲整數以及進行比較。統一你的可變標準!

+0

'mydict [myvar1] [0]'正在訪問列表中的第0個元素「apple」。這不是字典的關鍵。 – Tim

+0

正確,我的不好:) – Torxed