Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带数学运算符的Python for()循环_Python_List_For Loop_Python 3.x - Fatal编程技术网

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

带数学运算符的Python for()循环,python,list,for-loop,python-3.x,Python,List,For Loop,Python 3.x,假设我有一个数字列表,例如: my_list=[1,17,2] 我想把这些加在一起。我知道我可以使用打印(总和(我的列表))。但是,我想看看是否有其他方法可以做到这一点,因此我尝试了以下方法: b = len(my_list) for m in range(my_list[0], my_list[b-1]): m += m print(m) 我相信这样的事情应该行得通,但我显然做错了。此操作的输出为2。在我尝试之后: result = 0 b = len(my_list) fo

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

my_list=[1,17,2]

我想把这些加在一起。我知道我可以使用
打印(总和(我的列表))
。但是,我想看看是否有其他方法可以做到这一点,因此我尝试了以下方法:

b = len(my_list)
for m in range(my_list[0], my_list[b-1]):
    m += m
    print(m)
我相信这样的事情应该行得通,但我显然做错了。此操作的输出为
2
。在我尝试之后:

result = 0
b = len(my_list)
for m in range(my_list[0], my_list[b-1]):
    result = result + m
    print(result)
这将输出
1


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

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

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

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

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

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

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

my_list = [1, 17, 2]
reduce(lambda x, y: x+y, my_list)
试试这个

my_list = [1, 17, 2]
reduce(lambda x, y: x+y, my_list)

首先,您应该将正确的范围设置为:0..2(因为列表项的索引从0开始,有2个项)

或者,如果您更喜欢“针对每种”样式,则应按您正在汇总的列表进行评分:

  for m in my_list:
      result = result + m;
最后,如果只想打印最终金额,则应更正打印缩进:

  for m in my_list:
      result = result + m;

  print(result)  # <- mind indent

首先,您应该将正确的范围设置为:0..2(因为列表项的索引从0开始,有2个项)

或者,如果您更喜欢“针对每种”样式,则应按您正在汇总的列表进行评分:

  for m in my_list:
      result = result + m;
最后,如果只想打印最终金额,则应更正打印缩进:

  for m in my_list:
      result = result + m;

  print(result)  # <- mind indent

要从my_列表中获取值,可以使用以下语法:

for m in my_list:
    print m
如果您使用范围,它将为您提供从1(列表的第一个值)到2(列表的长度-1)的范围

要添加列表的值,可以尝试以下代码:

out = 0
for m in my_list:
   out = out + m
print(out)

要从my_列表中获取值,可以使用以下语法:

for m in my_list:
    print m
如果您使用范围,它将为您提供从1(列表的第一个值)到2(列表的长度-1)的范围

要添加列表的值,可以尝试以下代码:

out = 0
for m in my_list:
   out = out + m
print(out)

我感谢您的回复,我会记下这一点以备将来参考。我还没有接触到functools,谢谢你。如果你熟悉python 2.x中的reduce,python 3.x中的reduce也是一样,但是他们用functools模块来包装它。我已经编程了大约一周了。我学到了很多,在这里和那里奋斗,但迄今为止,我已经克服了每一个障碍。希望我能继续这样。这很有趣!我感谢您的回复,我会记下这一点以备将来参考。我还没有接触到functools,谢谢你。如果你熟悉python 2.x中的reduce,python 3.x中的reduce也是一样,但是他们用functools模块来包装它。我已经编程了大约一周了。我学到了很多,在这里和那里奋斗,但迄今为止,我已经克服了每一个障碍。希望我能继续这样。这很有趣!谢谢你用文字解释你的答案。谢谢你用文字解释你的答案。谢谢你的多个例子,这很有帮助。谢谢你的多个例子,这很有帮助。