Python字典列表[int:tuple]总和

Pav*_*van 7 python

我有一个词典列表.每个Dictionary都有一个整数键和元组值.我想总结位于元组某个位置的所有元素.

例:

myList = [{1000:("a",10)},{1001:("b",20)},{1003:("c",30)},{1000:("d",40)}]
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样做:

sum = 0
for i in myList:
    for i in myList:
        temp = i.keys()
        sum += i[temp[0]][1]
print sum
Run Code Online (Sandbox Code Playgroud)

有更多的pythonic方式吗?谢谢

Mar*_*ers 7

使用生成器表达式,遍历所有字典然后循环它们的值:

sum(v[1] for d in myList for v in d.itervalues())
Run Code Online (Sandbox Code Playgroud)

对于Python 3,替换d.itervalues()d.values().

演示:

>>> sum(v[1] for d in myList for v in d.itervalues())
100
Run Code Online (Sandbox Code Playgroud)