我在Python中使用Beautiful Soup來從HTML文件中刮取一些數據。在某些情況下,Beautiful Soup會返回包含string
和NoneType
對象的列表。我想過濾掉所有NoneType
對象。本機Python函數從列表中刪除NoneType元素?
在Python中,含有NoneType
對象的列表是不可迭代的,因此列表理解不適用於此。具體而言,如果我有一個包含NoneTypes
的列表lis
,並且我嘗試執行諸如[x for x in lis (some condition/function)]
之類的操作,Python會拋出錯誤TypeError: argument of type 'NoneType' is not iterable
。
正如我們在other posts中看到的,在用戶定義的函數中實現此功能很簡單。這是我的味道:
def filterNoneType(lis):
lis2 = []
for l in links: #filter out NoneType
if type(l) == str:
lis2.append(l)
return lis2
但是,如果它存在,我很樂意使用內置的Python函數。我總是希望儘可能簡化我的代碼。 Python有一個內置函數可以從列表中刪除NoneType
對象嗎?
你錯了,包含'None'的列表是不可迭代的。你可能(意外地)試圖遍歷'None'本身:'[x for None in]'。 –