使用地图功能只显示偶数

2024-10-03 06:25:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个初学者,我必须实现一个代码,以显示从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] 那么如何去除none值呢?在


Tags: 代码nonemapreturnifdefrangenum
2条回答

您的问题是您误解了传入map的函数应该做什么。传入map的函数应修改现有输入。map将函数的结果映射到每个元素,从而创建一个新的iterable。不要试图过滤它。在

您需要改为使用filter,它是根据一个条件专门过滤输入的:

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

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

^{pr2}$

试试这个:

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

相关问题 更多 >