7

私は辞書のリストを持っています。各ディクショナリには、整数キーとタプル値があります。タプルの特定の位置にあるすべての要素を合計したいと思います。

例:

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

私は次のようなことができることを知っています:

sum = 0
for i in myList:
    for i in myList:
        temp = i.keys()
        sum += i[temp[0]][1]
print sum

これを行うためのよりpythonicな方法はありますか?ありがとう

4

3 に答える 3

7

ジェネレータ式を使用して、すべての辞書とその値をループします。

sum(v[1] for d in myList for v in d.itervalues())

Python 3 の場合は、 に置き換えd.itervalues()ますd.values()

デモ:

>>> sum(v[1] for d in myList for v in d.itervalues())
100
于 2013-07-25T15:09:38.383 に答える