带有数学运算符的Python for()循环

2024-06-17 12:05:55 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个数字列表,比如:

my_list = [1, 17, 2]

我想把它们加在一起。我知道我可以使用print(sum(my_list))。不过,我想看看是否有其他方法可以这样做,所以我尝试了以下方法:

b = len(my_list)
for m in range(my_list[0], my_list[b-1]):
    m += m
    print(m)

我相信这样的事情应该行得通,但我显然做错了。它的输出是2。我试过之后:

^{pr2}$

输出1。在

请解释我做错了什么,以及如何改正。在


Tags: 方法in列表forlenmyrange数字
3条回答
from operator import add

my_list = [1, 17, 2]
result=reduce(add, my_list)

首先,您应该在您的案例中输入一个正确的范围:0..2(因为列表项的索引从0开始,有2个项)

  for i in range(0, b):
      result = result + my_list[i];

或者,如果您喜欢“for each”样式,则应按您正在汇总的列表列出:

^{pr2}$

最后,如果只想打印最后一笔金额,则应更正打印缩进:

  for m in my_list:
      result = result + m;

  print(result)  # <- mind indent

收尾:

  my_list = [1, 17, 2]

  result = 0

  for m in my_list:
      result = result + m;

  print(result)

因为您正在使用范围函数定义1到2之间的范围。在m中生成的唯一数据是1,因此结果是1。在

在Python中,可以直接迭代序列的元素:

m = [1, 17, 2]
res = 0
for i in m:
    res += i
print res

相关问题 更多 >