Beim Übergang von Python 2 zu 3 erfuhr das Verhalten von Filter, Map und Reduce wesentliche Änderungen .
Ansichten und Iteratoren statt Listen
Um die Effizienz zu fördern, Karte und Filter geben jetzt Iteratoren anstelle von Listen zurück. Beispielsweise gab filter(f, range(2, 25)) in Python 2 eine Liste der gefilterten Werte zurück, während es in Python 3 einen Iterator zurückgab. Eine einfache Lösung besteht darin, den Iterator explizit mithilfe von list(map(...)) in eine Liste umzuwandeln. Eine elegantere Lösung umfasst jedoch häufig Listenverständnisse oder eine Umstrukturierung des Codes, um die Notwendigkeit einer Liste zu beseitigen.
Entfernung von Reduce
Python 3 hat die integrierte Reduce-Funktion entfernt. Stattdessen wird empfohlen, bei Bedarf functools.reduce zu verwenden. Wie jedoch in der Dokumentation festgestellt wird, ist eine explizite for-Schleife im Allgemeinen besser lesbar und für 99 % der Fälle geeignet.
Fazit
Diese Änderungen zielten darauf ab, die Effizienz zu verbessern und Design der integrierten Funktionen von Python 3. Durch Befolgen der in der Dokumentation bereitgestellten Anleitungen können Entwickler Iteratoren und alternative Ansätze effektiv nutzen, um in Python 3 eine ähnliche Funktionalität wie ihr Python 2-Code zu erreichen.
Das obige ist der detaillierte Inhalt vonWie haben sich „Filter', „Mapping' und „Reduce' von Python 2 auf Python 3 geändert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!