在字典内的列表中乘以键*值?

时间:2012-12-01 05:54:05

标签: python

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]}

所以我试图让所有字典{}:列出[blah,blah,数字数字],密钥:列表[blah,blah] ,数字数字]等}这证明非常麻烦:(。我想要的输出是108557,它来自(2 * 999)+ (2 * 100)+(1 * 99999)+(3 * 2120)。

我在这里找到答案Multiply keys*values in a dict?几乎解决了我的问题。通过使用a = {2: 4, 3: 2, 5: 1, 7: 1},他可以将此词典26相乘,以获得sum([key * val for key, val in a.items()])的答案。我在此代码中合并列表时遇到问题!提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

如果数字总是最后两个元素,您可以执行以下操作:

sum([val[-2] * val[-1] for val in a.values()])
使用Blckknght提示更新

编辑