繁体   English   中英

尝试在列表理解中使用 lambda function 进行过滤

[英]Trying to filter with a lambda function inside of a list comprehension

我正在尝试使用列表理解从列表中删除所有偶数索引。 我正在使用 lambda function 过滤偶数索引,为什么它不起作用?

输入:

data = [e for i, e in enumerate(raw_data) if lambda i: True if i % 2 != 0 else False]

Output:

Input In [90]
data = [e for i, e in enumerate(raw_data) if lambda i: True if i % 2 != 0]
                                             ^
SyntaxError: invalid syntax

output 返回我由 lambda 定义的语法错误。 是否不能在列表理解中使用 lambda 作为过滤器参数?

编辑 1:我知道没有理由使用 lambda 当我可以将条件直接放入列表理解中时,我只是好奇它为什么不起作用。

编辑 2:删除了围绕列表理解的无用 numpy 代码

编辑 3:从 lambda 中删除了 return 语句

result = [i for i in range(10) if (lambda i: i%2 == 0)(i)]

由于 lambda 是一个匿名的 function,它仍然是一个 function。 您需要将值传递给 lambda。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM