python - python列表理解的语法错误
问题描述
我有一个带有0
and的整数 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 进行任何更改。这有什么问题,正确的解决方案是什么?
解决方案
v[i] = -1
不是表达式(赋值不是 Python 中的表达式),它是一个语句,因此它不能在生成器表达式中使用,例如(expr) for item in iterable
.
使用正常for
循环:
for i in range(len(v)):
if v[i] == 0:
v[i] = -1
推荐阅读
- youtube-api - 更改 YouTube 视频 API KEY 的隐私
- javascript - 一些具有隐藏值的数据列表标签
- javascript - 如何在wordpress中对齐父项下的下拉菜单
- terraform - 如何在 github 操作中从 terraform 云生成文件中设置 KUBECONFIG
- javascript - Handling array of stateful objects in React
- r - 如何基于 R 中的两列创建假人
- javascript - 使用带有反应挂钩的 fetch API 时输入意外结束
- c# - 在同步方法中执行异步方法的困惑
- react-native - 当 redux store 更新时,React 导航弹出到顶部
- javascript - 未捕获的类型错误:无法读取未定义的属性“外国”