我不确定为什么我无法在列表推导中使用*=
运算符,在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
答案 0 :(得分:4)
赋值运算符(及其上的所有变体)在Python中形成语句,而不是表达式。遗憾的是,列表推导(以及其他理解,如集合,字典和生成器)仅支持表达式。
答案 1 :(得分:3)