2022-07-06 12:08:49 发布
网友
当我试图用if x < 3: return x过滤[1,2,0,3,8]时,我最终得到了[1,2]。为什么0不包括在这个列表中?你知道吗
if x < 3: return x
[1,2,0,3,8]
[1,2]
0
def TestFilter(x): if x < 3: return x a = [1,2,0,3,8] b = filter(TestFilter, a) print b
每次函数返回Truefilter()时,都会将当前元素从原始列表添加到新列表中。Python认为0是False,其他任何数字都是True。因此,您需要函数返回True,而不是数字。你知道吗
True
False
def TestFilter(x): if x < 3: return True
编辑:下面是一个lambda示例:
a = [1, 2, 3, 0, 4, 8] print filter(lambda x: x < 3, a)
过滤时,您希望返回True或False。以下是您想要的:
def TestFilter(x): return x < 3
当你用这个过滤的时候,你会得到你想要的结果。你知道吗
每次函数返回
True
filter()时,都会将当前元素从原始列表添加到新列表中。Python认为0
是False
,其他任何数字都是True
。因此,您需要函数返回True
,而不是数字。你知道吗编辑:下面是一个lambda示例:
过滤时,您希望返回True或False。以下是您想要的:
当你用这个过滤的时候,你会得到你想要的结果。你知道吗
编程相关推荐