[英]Syntax error with python list comprehension
我有一个包含0
和1
的python 整数列表,现在我想将0
更改为-1
,所以我这样做:
[v[i] = -1 for i in range(len(v)) if v[i] == 0]
然后我得到syntax error
。 这有什么问题?
我也试过 map + lambda 但还是不行。
map(lambda x: -1 if x == 0 else x, v)
这次不是语法错误,只是没有将任何内容更改为 v。这有什么问题,正确的解决方案是什么?
v[i] = -1
不是表达式(赋值不是 Python 中的表达式),它是一个语句,因此它不能用在生成器表达式中,例如(expr) for item in iterable
。
使用普通的for
循环:
for i in range(len(v)):
if v[i] == 0:
v[i] = -1
你可以用这个
v = [-1 if x == 0 else x for x in v]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.