我在 Python 中使用 Beautiful Soup 从 HTML 文件中抓取一些数据。在某些情况下,Beautiful Soup 返回包含string
和NoneType
对象的列表。我想过滤掉所有的NoneType
对象。
在 Python 中,包含NoneType
对象的列表是不可迭代的,因此列表推导不是一个选项。具体来说,如果我有一个lis
包含的列表NoneTypes
,并且我尝试执行类似的操作[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: #filter out NoneType
if type(l) == str:
lis2.append(l)
return lis2
但是,如果存在,我很乐意为此使用内置的 Python 函数。我总是喜欢尽可能简化我的代码。Python 是否具有可以从列表中删除对象的内置函数?NoneType