[英]How does sum function work in python with for loop
我在pyhton中使用sum函数,我很清楚它的一般结构总和(可迭代,开始) ,但我无法得到以下代码背后的逻辑
test = sum(5 for i in range(5) )
print("output: ", test)
输出:25
请任何人都能描述这里发生的事情,基本上这里5乘以5,每个样本输入都有相同的模式。
您的代码是:
test = sum((5 for i in range(5)))
删除额外的括号是语法糖:它对您的算法没有影响。
(5 for i in range(5))
组件是一个生成器表达式 ,在每次迭代时产生值5.您的生成器表达式总共有5次迭代,由range(5)
定义。 因此,生成器表达式恰好产生5次5次。
sum
,正如文档所指出的那样,接受任何可迭代的 ,甚至是那些完全不在记忆中的迭代 。 生成器和扩展生成器表达式具有内存效率。 因此,你的逻辑将恰好相加5次5次,相当于25次。
在闭环中不使用变量时的约定是用下划线( _
)表示该变量,所以通常你会看到你的代码写成:
test = sum(5 for _ in range(5))
您可以向sum
函数添加一个列表,这样您就可以这样做:
test = sum((1,23,5,6,100))
print("output: ", test)
你得到135
。
因此,使用“for循环”,您将获得一个列表并将该列表放入sum
函数,并获得列表的总和。 真实的sum
函数使用yield insight并使用每个值并总结它们。
基本上,它是对范围(5)上的每个“i”重复求和5。 意思是,这段代码相当于n * 5,n是范围(n)的大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.