从列表中过滤掉任何值。此代码如何工作?

时间:2019-07-13 08:17:44

标签: python iteration

我正在搜索如何从列表中过滤None值,然后进入此代码。


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

它运作良好,但是没有解释代码的工作方式,我无法弄清楚。

谁能解释一下代码的工作原理吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

如评论中所述,此代码可以过滤掉任何虚假项目(0,FalseNone)。

您应该明确告诉您需要过滤的内容:

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

阅读list comprehension

答案 1 :(得分:0)

了解列表推导LIST COMPREHENSIONS

#this code only for understand purpose please write your own logic
my_list = [None, 1, 1, None]
#print([x for x in my_list if x])
l=[]
for x in my_list:
  if x:
    l.append(x)
print(l)

您还可以使用lambda或过滤器功能