如何在列表理解中使用if条件? [重复]

问题描述 投票:1回答:1

此问题已经在这里有了答案:

我有一个看起来像这样的reduce函数:

reduce(lambda x, y: x + y, [foo(x) for x in listValue], [])

[我还有另一个称为goo的函数,我想在x达到某种条件时使用它,例如reduce内的x >= 10

我的想法是:

reduce(lambda x, y: x + y, [foo(x) for x in listValue if x < 10 else goo(x)], [])

但是那给了我一个错误:

  File "<stdin>", line 1
    reduce(lambda x, y: x + y, [foo(x) for x in listValue if x < 10 else goo(x)], [])
                                                                       ^
SyntaxError: invalid syntax

如何解决?

python reduce
1个回答
1
投票

forif的顺序错误。您首先需要指定if,然后指定for

在您的代码中使用此reduce

reduce(lambda x, y: x + y, [(foo(x) if x < 10 else goo(x)) for x in listValue], [])
© www.soinside.com 2019 - 2024. All rights reserved.