首页 > 解决方案 > python列表理解的语法错误

问题描述

我有一个带有0and的整数 python 列表1,现在我想更改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 进行任何更改。这有什么问题,正确的解决方案是什么?

标签: python

解决方案


v[i] = -1不是表达式(赋值不是 Python 中的表达式),它是一个语句,因此它不能在生成器表达式中使用,例如(expr) for item in iterable.

使用正常for循环:

for i in range(len(v)):
    if v[i] == 0:
        v[i] = -1

推荐阅读