Heim >Backend-Entwicklung >Python-Tutorial >Wie haben sich „Filter', „Map' und „Reduce' in Python 3 geändert und wie kann ich meinen Code anpassen?
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.
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)))
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!