列表长度作为列表理解的任何函数中的条件

Nik*_*bhu 2 python list

我想使用我为其生成列表理解的列表的长度以及传递给 any() 函数本身的列表理解中的长度作为条件

我可以用两行来做到这一点 -

li = [1,2,3,4]
lcond = [x for x in li if x > 3]
any(lcond) and len(lcond) >2
Run Code Online (Sandbox Code Playgroud)

但我想一次完成

che*_*ner 5

您实际上并不需要在这里进行列表理解。

if len(filter(lambda x: x > 3, li)) > 2:
Run Code Online (Sandbox Code Playgroud)

在 Python 3 中,您需要显式使用返回的生成器filter

if len(list(filter(lambda x: x > 3, li))) > 2:
Run Code Online (Sandbox Code Playgroud)

实际上,我为什么要filter在这里使用?

if len([x for x in li if x > 3]) > 2:
Run Code Online (Sandbox Code Playgroud)

any是不必要的,因为列表的非零长度意味着any(...)将返回 true。