原生的Python函数用于从列表中删除NoneType元素?

8 浏览
0 Comments

原生的Python函数用于从列表中删除NoneType元素?

我使用Python中的Beautiful Soup来从HTML文件中获取一些数据。在某些情况下,Beautiful Soup返回的列表包含了既有string对象又有NoneType对象。我想要过滤掉所有的NoneType对象。

在Python中,包含NoneType对象的列表是不可迭代的,所以对于这个问题列表推导式不是一个选项。具体来说,如果我有一个包含NoneTypes的列表lis,并尝试像这样做[x for x in lis (some condition/function)],Python会抛出TypeError: argument of type 'NoneType' is not iterable错误。

正如我们在其他帖子中所看到的,实现这个功能的方法非常简单。这是我的方法:

def filterNoneType(lis):
    lis2 = []
    for l in links: # 过滤掉NoneType
        if type(l) == str:
            lis2.append(l)
    return lis2

然而,如果存在的话,我想使用Python内置的函数来实现这个功能。我总是喜欢在可能的情况下简化我的代码。 Python是否有一个内置的函数可以从列表中删除NoneType对象?

0