2012-12-01 30 views
0

a = {u'1': ['abc', 'thanks', 2.0, 999.0],u'2': ['def', 'for', 2.0, 100.0],u'3': ['ghi', 'helping', 1.0, 99999.0],u'4': ['jkl', 'me', 3.0, 2120.0] etc:[etc]}在字典內的列表中乘以鍵*值?

所以我想都乘以所有的字典{鍵:列表[胡說,胡說,數字數字]鍵:列表[胡說,胡說,數字編號]等}這證明非常麻煩:(我需要的輸出是從(2 * 999)+(2 * 100)+(1 * 99999)+(3 * 2120)派生的108557

我在這裏找到了一個答案Multiply keys*values in a dict?幾乎可以解決我的問題,因爲他能夠將這個字典乘以a = {2: 4, 3: 2, 5: 1, 7: 1}通過使用sum([key * val for key, val in a.items()])得到26的答案。我在將代碼列入此代碼時遇到問題!預先感謝您的幫助。

+0

顯示你的代碼。 –

回答

3

如果數字總是的最後兩個元素,你可以這樣做:

sum([val[-2] * val[-1] for val in a.values()]) 

編輯與Blckknght的尖端更新

+1

您可以遍歷'values'視圖,因爲您根本不需要密鑰。 – Blckknght

+0

非常感謝你! – mrmo123

+0

@Blckknght大聲笑,我從來不知道......傻我:) –

相關問題