gpt4 book ai didi

python - 排除Python3的map函数中的空值

转载 作者:太空宇宙 更新时间:2023-11-04 08:33:19 25 4
gpt4 key购买 nike

我正在使用 map 处理 Python3.6 中的列表:

def calc(num):
if num > 5:
return None
return num * 2


r = map(lambda num: clac(num), range(1, 10))
print(list(r))

# => [2, 4, 6, 8, 10, None, None, None, None]

我期望的结果是:[2, 4, 6, 8, 10]

当然,我可以使用filter 来处理map 结果。但是有没有办法让map直接返回我想要的结果呢?

最佳答案

map 不能直接过滤掉items。它为每个输入项目输出一个项目。您可以使用列表理解从结果中过滤掉 None

r = [x for x in map(calc, range(1,10)) if x is not None]

(这只对范围内的每个数字调用一次 calc。)

旁白:无需编写 lambda num: calc(num)。如果您想要一个返回 calc 结果的函数,只需使用 calc 本身。

关于python - 排除Python3的map函数中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51189698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com