使用地图功能仅显示偶数

时间:2017-09-02 22:36:32

标签: python python-2.7 map-function

我是初学者,我必须实现一个代码,使用map函数只显示从23到97的偶数。我被卡住了

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

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

2 个答案:

答案 0 :(得分:0)

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

您需要使用filter代替,根据条件专门过滤输入:

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

然而,列表理解将是更好的选择:

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

答案 1 :(得分:0)

试试这个:

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