Native Python-Funktion zum Entfernen von NoneType-Elementen aus der Liste?
Ich verwende Beautiful Soup in Python, um einige Daten aus HTML-Dateien zu kratzen. In einigen Fällen gibt Beautiful Soup Listen zurück, die beide enthaltenstring
undNoneType
Objekte. Ich möchte alles herausfilternNoneType
Objekte.
In Python werden Listen mit dem InhaltNoneType
Objekte können nicht iteriert werden, daher ist Listenverständnis keine Option. Insbesondere, wenn ich eine Liste habelis
enthältNoneTypes
und ich versuche so etwas zu machen[x for x in lis (some condition/function)]
, Python wirft den FehlerTypeError: argument of type 'NoneType' is not iterable
.
Wie wir gesehen habenandere Beiträgeist es einfach, diese Funktionalität in eine benutzerdefinierte Funktion zu implementieren. Hier ist mein Geschmack davon:
def filterNoneType(lis):
lis2 = []
for l in links: #filter out NoneType
if type(l) == str:
lis2.append(l)
return lis2
Ich würde jedoch gerne eine eingebaute Python-Funktion verwenden, falls diese vorhanden ist. Ich mag es immer, meinen Code zu vereinfachen, wenn es möglich ist.Verfügt Python über eine integrierte Funktion, die entfernt werden kann?NoneType
Objekte aus Listen?