簡體   English   中英

python列表理解的語法錯誤

[英]Syntax error with python list comprehension

我有一個包含01的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM