我不确定*=在for循环中使用运算符时为什么不能在列表理解中使用运算符?
*=
for
def funcLC(l): ans = 1 [ans *= x for x in l if x < 0] return ans SyntaxError: invalid syntax def funcFor(l): ans = 1 for x in l: if x < 0: start *= x return ans
赋值运算符(及其上的所有变体)在Python中构成一个 语句 ,而不是一个 expression 。不幸的是,列表推导(以及其他推导,如集合,字典和生成器)仅支持表达式。