a = 0 b = {'a': [(1, 'a'), (2, 'b'), (3, 'c')], 'b': [(4, 'd'), (5, 'e')]} for c, d in b.iteritems(): for e, f in d: a += e // now a = 15
嘗試了幾種方法。我想知道的一種方式(如果可能),以簡化使用列表理解這一筆:是否有可能在列表理解中將這段代碼片段化?怎麼樣?
a = sum(...)
謝謝你在前進, pf.me
a = 0 b = {'a': [(1, 'a'), (2, 'b'), (3, 'c')], 'b': [(4, 'd'), (5, 'e')]} for c, d in b.iteritems(): for e, f in d: a += e // now a = 15
嘗試了幾種方法。我想知道的一種方式(如果可能),以簡化使用列表理解這一筆:是否有可能在列表理解中將這段代碼片段化?怎麼樣?
a = sum(...)
謝謝你在前進, pf.me
a = sum(e for d in b.itervalues() for e, _ in d)
作品在Python 2.7。
a = sum([e for d in b.itervalues() for e, _ in d])
適用於Python 2.3。
我還沒試過,但a = sum(e for d in b.values() for e, _ in d)
應該是Python 3.0的等價物。
sum(j for _,i in b.iteritems() for j,_ in i)
會做到這一點。
很酷,你使用`itervalues()`而不是`iteritems()`縮小了2個字符。好主意! :) – 2011-02-08 03:03:27