一尘不染

无法在列表理解中使用* = python运算符

python

我不确定*=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

阅读 167

收藏
2021-01-20

共1个答案

一尘不染

赋值运算符(及其上的所有变体)在Python中构成一个 语句 ,而不是一个 expression
。不幸的是,列表推导(以及其他推导,如集合,字典和生成器)仅支持表达式。

2021-01-20