使用地图功能仅显示偶数
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))
我是初学者,我必须实现一个代码来使用 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))