昨天我遇到了列表理解并看到了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
答案 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])=12
和sum([1, 2, 3, 4, 5, 6])=21
。
阅读the docs以了解生成器的工作原理。