Wie haben sich die Funktionen „filter', „map' und „reduce' von Python in Python 3 geändert?

Barbara Streisand
Freigeben: 2024-11-27 14:41:17
Original
375 Leute haben es durchsucht

How Have Python's `filter`, `map`, and `reduce` Functions Changed in Python 3?

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))
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage