我有一個字典有多個鍵下的多個值。我不想要一個值的總和。我想找到一種方法來找到每個鍵的總和。 該文件是製表符分隔的,標識符是其中兩個項目Btarg的組合。每個標識符都有多個值。
下面是測試文件: 這裏是與下面的期望結果的測試文件:如何統計Python 3中的字典中的每個值組?
模式項目丰度
1螞蟻2
2犬10
3長頸鹿15
1 Ant 4
2狗5
這是預期的結果:
Pattern1Ant,6
Pattern2Dog,15
Pattern3Giraffe,15
這是我到目前爲止有:
for line in K:
if "pattern" in line:
find = line
Bsplit = find.split("\t")
Buid = Bsplit[0]
Borg = Bsplit[1]
Bnum = (Bsplit[2])
Btarg = Buid[:-1] + "//" + Borg
if Btarg not in dict1:
dict1[Btarg] = []
dict1[Btarg].append(Bnum)
#The following used to work
#for key in dict1.iterkeys():
#dict1[key] = sum(dict1[key])
#print (dict1)
我如何在沒有錯誤消息「不支持的操作數類型(s )爲+:'int'和'list'? 在此先感謝!
請包括您的錯誤的完整追溯和您的代碼的預期輸出。 –
'Buid [: - 3]':這是列表分片語法。這裏所說的是「給我一個Buid中所有元素的列表,包括最後的第三個元素」。然後你試圖將該列表添加到一個字符串('「//」)中,這會給你帶來錯誤。 – Lanaru
上述語句的錯誤消息是「字典對象沒有屬性iterkeys」。 當我將代碼更改爲dict.items()(而不是dict1.iterkeys())時,它給出了此錯誤:不可用類型,'列表' – Vince