我是初学者,我必须实现一个代码,使用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] 那么如何摆脱无价值呢?
答案 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))