无法准确理解sum函数在这里做了什么

时间:2016-06-10 07:23:17

标签: python

昨天我遇到了列表理解并看到了sum(x[y])但尝试了但无法理解究竟发生了什么。

为了创建Lo Shu magic square,我看到了sum(x[y]),其中x是嵌套列表,y在范围内。我只知道基本的和函数过程,如果有人解释上述概念和和函数的其他应用程序,我将不胜感激

>>> values = [list(range(1, 4)), list(range(4, 7))]

>>> values
[[1, 2, 3], [4, 5, 6]]

>>> sum(x[y] for x in values for y in range(2))
12
>>> sum(x[y] for x in values for y in range(3))
21

1 个答案:

答案 0 :(得分:2)

sum函数会添加呈现给它的所有值。

(x[y] for x in values for y in range(2))会产生值1, 2, 4, 5
(x[y] for x in values for y in range(3))生成值1, 2, 3, 4, 5, 6

因此,您获得sum([1,2,4,5])=12sum([1, 2, 3, 4, 5, 6])=21

阅读the docs以了解生成器的工作原理。