这样做的目的是啥 my_list = list(filter(None, my_list))
Posted
技术标签:
【中文标题】这样做的目的是啥 my_list = list(filter(None, my_list))【英文标题】:What is the purpose of doing my_list = list(filter(None, my_list))这样做的目的是什么 my_list = list(filter(None, my_list)) 【发布时间】:2020-11-16 08:49:09 【问题描述】:我在正在阅读的一段代码中看到了以下行,但我只是不明白它的用途:
my_list = list(filter(None, my_list))
my_list
只是一个单词列表。为什么有人会选择这样做?在我看来,这一切都是按原样返回列表。
【问题讨论】:
这能回答你的问题吗? remove None value from a list without removing the 0 value 我不清楚该链接如何回答这个问题。 OP 没有询问如何在不删除零的情况下删除None
。问题中的代码删除了这两个和任何其他虚假值。
链接中的问题具有确切的语法,这表明它用于删除 None 和 0 [ FALSE ]。这不是您要找的吗?
@roshanok 那个问题中的 OP 正在使用这个公式并且没有得到他们想要的结果。没有一个答案真正解决了它的作用,这是 this OP 的问题。它实际上并没有回答 this 问题。
【参考方案1】:
这将从my_list
中过滤掉falsy 值并返回一个新列表。最好用一个例子来说明:
my_list = [1, 2 , 0, 3, None, 4, False, True, [], [1], '', 'abc']
list(filter(None, my_list))
# [1, 2, 3, 4, True, [1], 'abc']
documentation 解释它:
过滤器(函数,可迭代) ... 如果function为None,则假定恒等函数,即iterable中所有为false的元素都被移除。
【讨论】:
呸......你链接并引用文档说“假”,但仍然说“假”。希望人们停止使用这种虚构的词,而只使用官方的 Python 术语 :-) 所有单词都是由@HeapOverflow 组成的,但要注意的是,python 文档中似乎没有使用“falsy”。一个风车被打败了……现在我们可以调整我们的 falsies 并继续前进。 啊,是的,当然。但是,是的,我认为 Python 文档始终使用“true”和“false”(没有任何样式)。以上是关于这样做的目的是啥 my_list = list(filter(None, my_list))的主要内容,如果未能解决你的问题,请参考以下文章