在python中,数字是从dict列表中提取的

在python中,数字是从dict列表中提取的,python,syntax,Python,Syntax,python新手!以下是我在python中拥有的词典列表: [{'amt': 400, 'name': 'whatever1'}, {'amt': 300, 'name': 'whatever3'}, {'amt': 500, 'name': 'whatever2'}] 我想在不使用完整for循环的情况下将所有“amt”相加。有什么想法吗 sum(L['amt'] for L in list_of_dicts) 应该这样做。另一种方法: from operator import itemge

python新手!以下是我在python中拥有的词典列表:

[{'amt': 400, 'name': 'whatever1'}, {'amt': 300, 'name': 'whatever3'}, {'amt': 500, 'name': 'whatever2'}]
我想在不使用完整for循环的情况下将所有“amt”相加。有什么想法吗

sum(L['amt'] for L in list_of_dicts)
应该这样做。

另一种方法:

from operator import itemgetter
from itertools import imap
sum(imap(itemgetter('amt'), your_list))
>>> LofD=[{'amt': 400, 'name': 'whatever1'}, {'amt': 300, 'name': 'whatever3'}, {'amt': 500, 'name': 'whatever2'}]
>>> SumofAmt=0
>>> for each in LofD:
...    SumofAmt+=each['amt']
... 
>>> SumofAmt
1200

我想不出一种没有for循环的方法来实现它,但也许生成器不算是“完整for循环”。@sammiwei听起来你的代码中有这样的东西
sum=0
。不要那样做
sum
是一个关键字,您已经用int值覆盖了它。在尝试您的代码之前,他们可能已将名称
sum
重新分配给一个数字。。这里还有另一个答案,
sum=0
init@jgritty是的,我就是这么做的!!谢谢@这就是为什么python建议不要在PEP8中使用小写L。为了清楚起见,我将更改它。您为什么要这样做?你认为这样会更有效率吗?你想让它看起来比明显的方式更神秘吗?对“pyton”来说太陌生了,以至于你还不会拼写它?不太适合问题中的“不使用完整for循环”部分。