首頁 > 後端開發 > Python教學 > 從 Python 2 到 Python 3,「filter」、「map」和「reduce」是如何改變的?

從 Python 2 到 Python 3,「filter」、「map」和「reduce」是如何改變的?

Mary-Kate Olsen
發布: 2024-12-01 20:42:11
原創
958 人瀏覽過

How Did `filter`, `map`, and `reduce` Change from Python 2 to Python 3?

Python 3 中filter、map 和reduce 的演變

從Python 2 到3 的過渡中,filter、map 和reduce的行為發生了實質性的變化.

視圖和迭代器而不是列表

為了提高效率,映射和過濾器現在返回迭代器而不是列表。例如,在 Python 2 中,filter(f, range(2, 25)) 傳回過濾值的列表,而在 Python 3 中,它會傳回迭代器。一個簡單的修復方法是使用 list(map(...)) 將迭代器明確轉換為列表,但更優雅的解決方案通常涉及列表推導式或重構程式碼以消除對列表的需求。

刪除了reduce

Python 3 刪除了內建的reduce 函數。相反,它建議在必要時使用 functools.reduce。然而,如文件所指出的,顯式 for 迴圈通常更具可讀性,並且適合 99% 的情況。

結論

這些變更旨在提高效率和Python 3 內建函數的設計。透過遵循文件中提供的指導,開發人員可以有效地利用迭代器和替代方法在 Python 3 中實現與 Python 2 程式碼類似的功能。

以上是從 Python 2 到 Python 3,「filter」、「map」和「reduce」是如何改變的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板