【发布时间】:2019-11-14 18:17:57
【问题描述】:
当我尝试过滤一个列表时,我在输出中丢失了 None 类型的项目。我的代码如下:
def filter_compute(my_list):
return list(filter(lambda x: x>5 if type(x)==int else x, map_compute(my_list)))
filter_compute(['cup', '321', 2, ['x'], 4])
map_compute 的输出应该如下:
map_compute(['cup', '321', 2, ['x'], 4])
output ['puc', '123', 4, None, 16]
所以从 map_compute 到 filter 函数的迭代应该是:['puc', '123', 4, None, 16]
我期望的输出是:['puc', '123', None, 16]
但我得到的输出是:['puc', '123', 16]
由于某种原因,None 项目没有被输出。
【问题讨论】:
-
试试
list(filter(lambda x: x>5 if isinstance(x, int) else True, map_compute(my_list))) -
如果您没有分享
map_compute的代码,我们应该如何验证它产生了什么?