是否可以仅使用 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
的方式。)
我想知道是否可以仅使用 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
的方式。)