做 my_list = list(filter(None, my_list)) 的目的是什么

An *_*rer 0 python filter

我在我正在阅读的一段代码中看到了以下行,但我不明白它的目的:

my_list = list(filter(None, my_list))
Run Code Online (Sandbox Code Playgroud)

my_list只是一个单词列表。为什么有人会选择这样做?在我看来,所有这些都按原样返回列表。

Mar*_*yer 8

这将从中过滤掉虚假my_list并返回一个新列表。最好用一个例子来说明:

my_list = [1, 2 , 0, 3, None, 4, False, True, [], [1], '', 'abc']

list(filter(None, my_list))
# [1, 2, 3, 4, True, [1], 'abc']
Run Code Online (Sandbox Code Playgroud)

文件解释它:

filter(function, iterable)
...
如果 function 为 None,则假定恒等函数,即 iterable 中所有为 false 的元素都被删除。