首頁 >後端開發 >Python教學 >Python 3 中的「filter」、「map」和「reduce」有何變化?

Python 3 中的「filter」、「map」和「reduce」有何變化?

Susan Sarandon
Susan Sarandon原創
2024-11-27 15:38:10301瀏覽

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

Python 3:Filter、Map 和Reduce 實現的變化

在Python 2 中,filter、map 和reduce 的行為不同來自Phonyt 3 的對應版本。這源自於Python 3 中實作的幾個重大變更:

清單上的視圖和迭代器:

  • map() 和filter() 現在返回迭代器而不是列表。要取得列表,請使用 list() 明確轉換它們。

刪除了 reduce():

  • reduce() 已從核心 Python 支援 functools.reduce() 函數。但是,顯式 for 迴圈通常更具可讀性和首選。

範例用法:

Python 2 程式碼片段可以更新為 Python 3,如下:

def f(x):
    return x % 2 != 0 and x % 3 != 0

# **Filter:** Use list() to obtain a list of filtered values
filtered_list = list(filter(f, range(2, 25)))

# **Map:** Similarly, use list() to convert the iterator to a list
cubed_list = list(map(lambda x: x ** 3, range(1, 11)))

# **Reduce:** Use functools.reduce() or an explicit for loop
from functools import reduce
add_result = reduce(lambda x, y: x + y, range(1, 11))

print(filtered_list)  # Output: [5, 7, 11, 13, 17, 19, 23]
print(cubed_list)   # Output: [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
print(add_result)   # Output: 55

額外資源:

  • [Python 3.0 更改](https://docs.python.org/3 /whatsnew/3.0.html)
  • [map()與視圖](https://wiki.python.org/moin/Getting a map() to return a list in Python 3.x)

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn