是否可以仅使用 map 实现过滤功能?

Is it possible to implement filter function using only map?

我想知道是否可以仅使用 Python 中的 map 函数来实现 filter 函数。 假设我有一个列表 A = [1,2,3,4,5,6,7,8,9,10] 并且我只想得到偶数。应用 filter 函数为我提供了一个包含 5 个元素的列表,但是 map 总是 returns 10 个元素,无论我能想到什么函数。

有什么办法可以实现吗?

请不要建议对map的结果再次应用filter。 :-)

没有。 map 只会将函数应用于列表的所有元素。因此,结果列表(或生成器)中的元素数将始终与原始列表中的元素数相同。

(从技术上讲,您 可以 map 与一个函数一起使用,该函数使用副作用将偶数元素添加到某些 other 列出并使用该列表作为结果,但这不是应该使用 map 的方式。)