[0]在python中表达什么呢?
问题背景,第21讲课后习题,第三题。我写的是:
list(filter(lambda x:x if x%3==0 and x != 0 else None,range(100)))
后来发现不要 x != 0, 输出结果不变。
甚至:
>>> list(filter(lambda x:x if x%3==0 else None,))
[]
这里为什么不能输出呢?
但直接输出是可以的,比如:
>>> *2
>>>
求教,谢谢🙏 本帖最后由 Twilight6 于 2020-6-21 11:45 编辑
一个列表里面有个元素 0
filter 函数是用来筛选用的 当返回 True时候留下,False 时候去掉
filter 第一个参数是函数 function,第二个参数可迭代对象 iterable
而你:>>> list(filter(lambda x:x if x%3==0 else None,))
可迭代对象只有一个 ,0%3 == 0 条件成立 返回 x = 0 而 filter 筛选0 时候 0可以看成bool类型值的 False 所以过滤了
导致输出的是 [] 空列表
Twilight6 发表于 2020-6-21 11:37
一个列表里面有个元素 0
谢谢您,但我还是不太懂,😂 是不是,filter的结果是一个可迭代的函数,以list形式输出来,但有个元素 0 ,为什么不输出呢?
我试了一下tuple
>>> tuple(filter(lambda x:x if x%3==0 else None,))
()
也是一个空,请问里面有元素吗? mozhi16 发表于 2020-6-21 11:45
谢谢您,但我还是不太懂,😂 是不是,filter的结果是一个可迭代的函数,以list形式输出来,但有个 ...
我重新发了 你可以看看~ Twilight6 发表于 2020-6-21 11:46
我重新发了 你可以看看~
谢谢谢谢,懂啦,懂啦,太棒了!
页:
[1]