[英]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.