我有一個字典當類型錯誤試圖訪問字典值
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