Я использую Beautiful Soup в Python для очистки некоторых данных из файлов 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
из списков?