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ältNoneTypesund 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?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage