使用地图功能仅显示偶数

To display only even numbers using map function

我是初学者,我必须实现一个代码来使用 map 函数只显示 23 到 97 之间的偶数。我被困在

def evenfunc(num):
    if num%2 == 0:
        return num
print map(evenfunc, range(23,98))

输出为[None, 24, None, 26, None, 28, None, 30, None, 32, None, 34, None, 36,....97] 那么如何摆脱 none 值呢?

你的问题是你误解了传入 map 的函数应该做什么。传递给 map 的函数应该修改现有的输入。 map maps函数的结果到每个元素,创建一个新的iterable。 尝试过滤它。

您需要改用 filter,它专门根据条件过滤输入:

filter(lambda x: x % 2 == 0, range(23, 98))

但是,列表理解会是更好的选择:

[x for x in range(23, 98) if x % 2 == 0]

试试这个:

def evenfunc(num):
    if num%2 == 0:
        return True
print filter(evenfunc, range(23,98))