filter()可以包含两个条件吗?

时间:2018-12-10 18:25:28

标签: python list filter functional-programming

我可以使用filter()包括多个条件吗?例如,如果我有这样的代码。

nums = [3, 7, 10, 29, 39, 55, 67, 77, 107]
res = list(filter(lambda x: x > 60, nums))
print(res)

如何使用过滤器来包含大于60的数字和小于20的数字?

2 个答案:

答案 0 :(得分:1)

您不应使用过滤器,而应使用列表理解

[x for x in nums if x < 20 or x > 60]

您可以使用过滤器执行相同的操作,但这将很麻烦

list(filter(lambda x: x < 20 or x > 60, nums))

答案 1 :(得分:0)

Chained comparisons(具有列表理解功能)在这里可能是合适的:

[x for x in nums if not 20 <= x <= 60]