[英]How can i sum every number in list with each other in python?
所以,我有一个数字列表:
list = [4,5,65,94,3]
此循环将列表中的第一个数字与列表中的每个数字相加:
for i in list:
sum = i + list[0]
我如何移动到列表中的下一个项目,以便我的循环将列表中的每个数字相互求和?
因此,这里有两个误解。
首先,该循环没有按照您的描述进行。 假设sum
是在其外部定义的,则添加的唯一值将在循环后保留,是列表中的最后一个元素以及列表的第一个位置中的任何元素。 对于您当前的列表,总和为7。
其次,已经有一个方便的功能可以做到这一点- sum
-这将使您的任务变得很简单。
sum([4,5,65,94,3])
但是,如果您坚持要自己这样做,则必须设置一些内容:
total = total + i
或total += i
。 for
循环实际上是for-each循环。 i
将通过您的列表,并依次绑定到每个值。 要修复代码,您需要执行以下操作:
total = 0
li = [4,5,65,94,3]
for i in li:
total += i
最后,请避免遮盖函数名称。 list
和sum
已经定义为函数,并且您真的不想掩盖它们。
不确定您要尝试什么。 要在python中找到列表的总和,只需执行以下操作:
for i in li:
total += i
您当前正在做的是将每次迭代的总和值更改为等于i加列表的第一个元素。 这将使您的总和在循环结束时等于7,因为它将最后一个元素(3)与第一个元素(4)相加。
另外,python有一个内置函数可以对列表中的数字求和,因此您的代码可以简化为:
li = [4,5,65,94,3]
total = sum(li)
编辑:正如其他人指出的那样,避免将变量命名为与函数相同。
或者,如果您确实想使用索引进行迭代,则可以使用以下范围函数来实现
对于范围内的我(len(list)):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.