sauberste Methode zum Aufrufen einer Funktion in einer Liste von Elementen

n Python 2 habe ichmap, um eine Funktion auf mehrere Elemente anzuwenden, z. B. um alle Elemente zu entfernen, die einem Muster entsprechen:

map(os.remove,glob.glob("*.pyc"))

Natürlich ignoriere ich den Rückkehrcode vonos.remove, Ich möchte nur, dass alle Dateien gelöscht werden. Es hat eine temporäre Instanz einer Liste für nichts erstellt, aber es hat funktioniert.

With Python 3, asmap gibt einen Iterator und keine Liste zurück, der obige Code macht nichts. Ich habe eine Problemumgehung gefunden, daos.remove kehrt zurückNone, Ich benutzeany, um die Iteration für die vollständige Liste zu erzwingen, ohne ein @ zu erstelllist (bessere Leistung

any(map(os.remove,glob.glob("*.pyc")))

Aber es scheint ein bisschen gefährlich zu sein, besonders wenn man es auf Methoden anwendet, die etwas zurückgeben. Eine andere Möglichkeit, dies mit einem Einzeiler zu tun und keine unnötige Liste zu erstellen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage