在 Python 中,函數不僅可以接受數值、字串等基本數據類型作為參數,
還可以接受其他函數作為參數,甚至可以返回一個函數。
這種將函數作為變數來使用的特性,就是所謂的 高階函數 (Higher-Order Function)。
函數 | 描述 | 示例 |
---|---|---|
map(function, iterable) |
將函數應用於可迭代對象的每個元素,並返回一個新的迭代器。 | list(map(lambda x: x*2, [1, 2, 3])) → [2, 4, 6] |
filter(function, iterable) |
過濾可迭代對象中的元素,返回一個新的迭代器,其中包含使函數返回 True 的元素。 | list(filter(lambda x: x % 2 == 0, [1, 2, 3, 4])) → [2, 4] |
reduce(function, iterable) |
將函數應用於可迭代對象的元素,從左到右累積結果。 | from functools import reduce; reduce(lambda x, y: x+y, [1, 2, 3]) → 6 |
def sort_by_length(words):
"""根據字串長度排序"""
return sorted(words, key=len)
words = ['apple', 'banana', 'cherry']
print(sort_by_length(words)) # 输出: ['apple', 'cherry', 'banana']
在上面的例子中,sorted 函數是一個高階函數,它接受一個 key 參數,這個參數是一個函數,用於指定排序的關鍵字。我們傳入了一個 lambda 表達式 len 作為 key,表示根據每個元素的長度進行排序。
程式碼更簡潔: 高階函數可以減少重複代碼,提高程式碼的可讀性。
程式碼更靈活: 通過傳遞不同的函數作為參數,可以實現不同的功能。
函數式程式設計: 高階函數是函數式程式設計的重要概念,它可以幫助我們寫出更抽象、更具有表達力的程式碼。
關鍵點: