Python 从列表中筛选出无值。这段代码是如何工作的?

Python 从列表中筛选出无值。这段代码是如何工作的?,python,iteration,Python,Iteration,我正在搜索如何从列表中筛选出无值,并找到了这段代码 my_list = [None, 1, 1, None] print([x for x in my_list if x]) 它工作得很好,但是没有解释代码是如何工作的,我也不知道 有人能解释一下代码是如何工作的吗 谢谢。如评论中所述,此代码过滤掉任何错误项(0,False,None) 您应该明确说明需要过滤掉的内容: [x for x in my_list if x is not None] 阅读。如注释中所述,此代码将过滤掉任何错误项

我正在搜索如何从列表中筛选出无值,并找到了这段代码


my_list = [None, 1, 1, None]
print([x for x in my_list if x])

它工作得很好,但是没有解释代码是如何工作的,我也不知道

有人能解释一下代码是如何工作的吗


谢谢。

如评论中所述,此代码过滤掉任何错误项(0,
False
None

您应该明确说明需要过滤掉的内容:

[x for x in my_list if x is not None]

阅读。

如注释中所述,此代码将过滤掉任何错误项(0,
False
None

您应该明确说明需要过滤掉的内容:

[x for x in my_list if x is not None]

阅读。

阅读列表理解


您还可以使用lambda或filter函数

了解列表理解


您也可以使用lambda或filter函数

这是错误的代码,无法过滤出
None
。这也会过滤掉零。您需要阅读一些相关内容,并知道
bool(None)
False
。过滤掉
None
的代码是错误的。这也会过滤掉零。您需要阅读一些相关内容,并知道
bool(None)
False