[英]Python: List Comprehension invalid syntax error
我正在尝试在一行中重新创建此循环:
results = [149, 0, 128, 0, 0, 0, 1, 0, 0, 14, 0, 2]
for x in results:
total = x + total
print(total)
但是当我这样做时:
y = [total = total + x for x in results]
我收到一个错误:
y = [total = total + x for x in results]
^
SyntaxError: invalid syntax
我想念什么? 谢谢。
您只需要使用一个函数:
results = [149, 0, 128, 0, 0, 0, 1, 0, 0, 14, 0, 2]
res = sum(results)
print(res)
要么
from functools import reduce
results = reduce(lambda x, y: x + y, results)
print(results)
如果您坚持使用列表理解 ,那会麻烦又不必要,因为它将创建另一个列表,最终导致使用相同的方法使用函数来获取总和 。
出现问题是因为python中的单行返回一个数组,它不是一种干净的方法来引用它自己创建的对象。
您不能求和,可以将数字相乘(但每个数字都可以)
In [2]: y = [x*x for x in results]
In [3]: y
Out[3]: [22201, 0, 16384, 0, 0, 0, 1, 0, 0, 196, 0, 4]
实现所需目标的最佳方法是使用其内置方法sum
In [9]: sum(results)
Out[9]: 294
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.