Python 是否可以在列表中转换此代码段?怎么用? a=0 b={'a':[(1,'a'),(2,'b'),(3,'c'),'b':[(4,'d'),(5,'e')]} 对于b.iteritems()中的c,d: 对于e,d中的f: a+=e //现在a=15

Python 是否可以在列表中转换此代码段?怎么用? a=0 b={'a':[(1,'a'),(2,'b'),(3,'c'),'b':[(4,'d'),(5,'e')]} 对于b.iteritems()中的c,d: 对于e,d中的f: a+=e //现在a=15,python,list-comprehension,Python,List Comprehension,尝试了几种方法。我想知道一种方法(如果可能的话)用列表来简化这个总和: a=sum(…) 提前谢谢大家,, pf.mea=sum(b中的e代表d.itervalues()代表e,d中的u)在Python2.7中工作 a=sum([e代表b中的d.itervalues()代表e,u代表d])适用于Python 2.3 我还没有试过,但是a=sum(b中的d代表e,value()代表e,d中的u)应该是Python 3.0版的等价物。sum(j代表u,I代表b.iteritems()代表j,I代表I

尝试了几种方法。我想知道一种方法(如果可能的话)用列表来简化这个总和:

a=sum(…)

提前谢谢大家,, pf.me

a=sum(b中的e代表d.itervalues()代表e,d中的u)
在Python2.7中工作

a=sum([e代表b中的d.itervalues()代表e,u代表d])
适用于Python 2.3


我还没有试过,但是
a=sum(b中的d代表e,value()代表e,d中的u)
应该是Python 3.0版的等价物。

sum(j代表u,I代表b.iteritems()代表j,I代表I)
就可以了。

itervalues()
而不是
iteritems()
又减少了2个字符。好主意!:)对我来说有趣的是,看似等价的[e代表e,in d代表b.itervalues()中的d]不起作用——至少在Python 2.3中是如此。“for”语句显然是迭代地应用于当前与该变量相关联的任何值,而不是应该从功能上派生的值。@pf.me:使用
itervalues
的意义在于,值是所需的全部——而不是“收缩代码”。我们不能只使用sum(b中的d使用e[0]。d中的e使用itervalues())[因为我们不使用uo]:) 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