Verstehen der Entwicklung funktionaler Tools in Python: Filtern, Zuordnen und Reduzieren
In Python 3 ist das Verhalten von Filter, Zuordnen, und Reduce-Funktionen haben im Vergleich zu ihren Gegenstücken in Python 2 erhebliche Änderungen erfahren. Dies kann bei Benutzern, die an die vorherige Syntax gewöhnt sind, zu Verwirrung führen Verhalten.
Änderungen an Filter und Zuordnung
In Python 3 geben sowohl Filter als auch Zuordnung Iteratoren anstelle von Listen zurück. Dies ist ein Ergebnis des Wandels von der Erstellung konkreter Datenstrukturen hin zur Bereitstellung effizienterer und speichereffizienterer Ansichten. Wenn Sie als Ergebnis eine Liste benötigen, können Sie den Iterator mit der Funktion list() konvertieren, z. B. list(filter(f, range(2, 25))). Eine bessere Lösung besteht jedoch darin, Listenverständnisse in Betracht zu ziehen oder den Code zu überarbeiten, um die Notwendigkeit einer Liste zu beseitigen.
Entfernung von Reduce
Python 3 hat den Build entfernt -in Reduzierfunktion. Stattdessen sollten Benutzer bei Bedarf die Funktion functools.reduce verwenden. Es ist jedoch wichtig zu beachten, dass in den meisten Fällen eine explizite for-Schleife eine besser lesbare und effizientere Alternative darstellt.
Beispielcode-Änderungen
Zur Anpassung des bereitgestellten Python 2-Code zu Python 3, die folgenden Änderungen sind notwendig:
# Python 2 filter(f, range(2, 25)) map(cube, range(1, 11)) reduce(add, range(1, 11)) # Python 3 list(filter(f, range(2, 25))) list(map(cube, range(1, 11))) functools.reduce(add, range(1, 11))
Fazit
Durch das Verständnis dieser Änderungen in Python 3 können Entwickler Überraschungen vermeiden und Code schreiben, der die in der Sprache verfügbaren Funktionstools effektiv nutzt.
Das obige ist der detaillierte Inhalt vonWie haben sich die Funktionen „filter', „map' und „reduce' von Python in Python 3 geändert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!