我有一个字典当类型错误试图访问字典值
d1={'a':['in-gaap','inr',0,1],'b':['in-gaap','inr',0,2],'c':['in-ca','share',0,4],'n1':['','','','aaa']}
d2={'d':['in-gaap','inr',0,'a+b'],'e':['in-gaap','inr',0,'y+t']}
for k in d2.iterkeys():
a=re.findall('\w+',d2[k][3])
x2=dict([(x,d1.get(x,0)[3])for x in a]) # here its showing Type:error int obj not subscriptable
d1[k]=[d2[k][0],d2[k][1],d2[k][2],eval(d2[k][3],x2)]
'a' 是一个列表动态创建它分裂d [k]的[3],并将其存储在 “一” d [ k] [3]在第一次迭代中包含a = ['a','b']并且在第二次迭代中a = ['y','t']其实,我正在比较列表“a”键和字典“d1”键如果键是他们它采取该值或分配默认值,直到这工作正常。 但是,当我尝试通过使用代码 比较列表“a”与字典“d1”创建字典x2 = dict([(x,d1.get(x,0)[3])for a])
它显示类型:错误int对象不subproptable。我dono y但d2 [k] [3]有价值,但它显示错误。
d1.get(X,0)[3]问题是在这里获得方法没有返回列表..为什么你越来越[3]为int的索引,其中,默认值是0? – 2012-03-09 07:40:34
@akhter wahab如果你看到字典“d1”他们我存储值列表d1 = {'a':['in-gaap','inr',0,1] ....}我需要得到“1 “这是在索引”3“,所以我使用d.get(x,0)[3],如果值是balnk,默认值将被分配。 – user1182090 2012-03-09 07:46:04