2013-05-31 38 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