Heim >Backend-Entwicklung >Python-Tutorial >Wie haben sich „Filter', „Map' und „Reduce' in Python 3 geändert und wie kann ich meinen Code anpassen?

Wie haben sich „Filter', „Map' und „Reduce' in Python 3 geändert und wie kann ich meinen Code anpassen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-27 16:35:12774Durchsuche

How Have Python 3's `filter`, `map`, and `reduce` Changed, and How Can I Adapt My Code?

Python 3: Anpassung an die Entwicklung von Filtern, Zuordnen und Reduzieren

In Python 2 boten die Funktionen Filtern, Zuordnen und Reduzieren prägnante Möglichkeiten zur Datenbearbeitung Sammlungen. Diese Funktionen haben jedoch in Python 3 erhebliche Änderungen erfahren.

Filter und Map: Iteratoren statt Listen

Anstatt Listen zurückzugeben, geben Filter und Map jetzt Iteratoren zurück. Diese Änderung steht im Einklang mit der Designphilosophie von Python 3, Faulheit und Effizienz zu fördern. Iteratoren sparen Speicher und verbessern die Leistung, indem sie Elemente nach Bedarf bereitstellen, anstatt die gesamte Liste im Voraus zu erstellen.

Um eine Liste zu erhalten, die dem Ergebnis eines Filters oder einer Karte entspricht, können Sie die Funktion list() verwenden wie folgt:

filtered_list = list(filter(f, range(2, 25)))
mapped_list = list(map(cube, range(1, 11)))

reduce: Veraltet und ersetzt

Python 3 hat die Reduce-Funktion entfernt. Es wurde als functools.reduce() in das functools-Modul verbannt. Diese Änderung wurde durch das Missverständnis im Zusammenhang mit der Verwendung von Reduce motiviert. In den meisten Fällen gilt eine explizite for-Schleife als besser lesbar und effizienter.

Beachten Sie, dass functools.reduce() denselben Zweck erfüllt wie Reduce in Python 2. Wenn Ihr Code jedoch stark von Reduce abhängt, sollten Sie ihn erneut aufrufen Es wird empfohlen, alternative Ansätze (z. B. explizite for-Schleifen oder Funktionen höherer Ordnung) zu erkunden.

Indem Sie diese Änderungen übernehmen, können Sie Ihren Python-Code an die neueste Version anpassen und von deren Verbesserungen profitieren Leistung und Lesbarkeit.

Das obige ist der detaillierte Inhalt vonWie haben sich „Filter', „Map' und „Reduce' in Python 3 geändert und wie kann ich meinen Code anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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