使用 map 和函数列表迭代整数列表

亚历山大

嗨,伙计们,我正在尝试编写一个使用函数列表和整数列表的代码,并且只返回函数列表中至少有 1 个 true 的函数,如下所示:

tuple(lambda func,data:filter(lambda x:map(lambda y:y(x)==true,func),data))

func=(lambda x: x>3,lambda x: x%2==0)
data=(1,2,3,4,5,6,7,8,9,10)

所以列表应该返回 4,6,8,10 但它返回整个列表,有人知道为什么吗?

PS 我知道它可以用不同的方式很容易地完成,但它是一个 lambda 练习。

胡安帕阿里维拉加

您可以使用如下表达式:

tuple(filter(lambda x: any(filter(lambda f: f(x), func)), data))

所以,

In [17]: func=(lambda x: x>3,lambda x: x%2==0)
    ...: data=(1,2,3,4,5,6,7,8,9,10)
    ...:
    ...:

In [18]: tuple(filter(lambda x: any(filter(lambda f: f(x), func)), data))
Out[18]: (2, 4, 5, 6, 7, 8, 9, 10)

另请注意,您的表达式会引发 a TypeError,所以我不知道您对返回整个列表的意思是什么。

使用以下内容可能更具可读性:

In [23]: tuple(
    ...:     x for x in data
    ...:     if any(f(x) for f in func)
    ...: )
Out[23]: (2, 4, 5, 6, 7, 8, 9, 10)

或者没有any(一个荒谬的约束)

In [29]: tuple(filter(lambda x: tuple(filter(None, map(lambda f: f(x), func))), data))
Out[29]: (2, 4, 5, 6, 7, 8, 9, 10)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用R Lapply和函数参数列表迭代函数

您如何使用整数列表迭代列表?

使用map()将整数列表转换为字符串

高阶函数:“无法使用类型为(((_)-> _))的参数列表调用'map'”

无法使用类型为([[AnyObject],(_)-> _)'的参数列表调用'map'

使用Django在sqlite中存储和检索整数列表

给定一个整数列表和一个索引列表,我该如何使用map将10添加到第一个列表中的特定元素?

使用列表推导生成的函数列表

使用Flask路线捕获整数列表

使用Java 8的整数列表的总和

使用xlrd从Excel获取整数列表

如何编写使用Scheme来计算整数列表的最大值和最小值的函数

Swit map:错误:无法使用类型为((_)-> _)'的参数列表调用'map'

使用迭代器从文件中读取二进制整数列表

r:在函数中使用参数列表

在函数中使用传递的参数列表

使用foldl,编写一个将整数列表转换为整数的函数?

Lisp程序,使用整数列表来复制列表的元素

使用列表推导将整数列表相乘

使用 Java 流从整数列表计算累积总和列表

purrr:使用 map 迭代命名列表(使用函数工厂)

如何使用R语言编写一个仅从整数列表中返回奇数的函数?

Swift编译器错误:“无法使用类型'((_)-> _)'的参数列表调用'map'”

使用List.map创建一个奇数列表

使用map函数迭代Python字典列表中的值

什么是错误的,我的方法来创建使用IntStream和foreach整数列表?

如何使用Multipart在retrofit2中发送整数列表和图像

使用计时器和Rx生成整数列表

如何在python pandas的整数列上使用.map