Natywna funkcja Pythona do usuwania elementów NoneType z listy?
Używam Beautiful Soup w Pythonie, aby zeskanować niektóre dane z plików HTML. W niektórych przypadkach Beautiful Soup zwraca listy zawierające obastring
iNoneType
przedmioty. Chciałbym odfiltrować wszystkieNoneType
przedmioty.
W Pythonie listy z zawartościąNoneType
obiekty nie są iterowalne, więc zrozumienie listy nie jest do tego możliwe. W szczególności, jeśli mam listęlis
zawierającyNoneTypes
i staram się zrobić coś takiego[x for x in lis (some condition/function)]
, Python zgłasza błądTypeError: argument of type 'NoneType' is not iterable
.
Jak widzieliśmy winne posty, łatwo jest wdrożyć tę funkcjonalność w funkcji zdefiniowanej przez użytkownika. Oto mój smak tego:
def filterNoneType(lis):
lis2 = []
for l in links: #filter out NoneType
if type(l) == str:
lis2.append(l)
return lis2
Jednak chciałbym użyć do tego wbudowanej funkcji Pythona, jeśli istnieje. Zawsze lubię upraszczać mój kod, jeśli to możliwe.Czy Python ma wbudowaną funkcję, która może usunąćNoneType
obiekty z list?