首頁 >常見問題 >python高階函數有哪些

python高階函數有哪些

小老鼠
小老鼠原創
2023-11-10 16:42:141313瀏覽

高階函數有map()、filter()、reduce()、lambda函數、partial()等。詳細介紹:1、map():這個內建函數接受一個函數和一個或多個可迭代物件作為輸入,然後傳回一個將輸入函數應用於可迭代物件的每個元素的迭代器;2、filter() :這個內建函數接受一個函數和一個可迭代物件作為輸入,然後傳回一個迭代器,該迭代器產生那些使得輸入函數傳回True的元素等等

python高階函數有哪些

高階函數在Python中通常指的是接受一個或多個函數作為輸入(參數)或傳回一個函數作為輸出的函數。這種概念常常出現在函數式程式設計中。

以下是一些Python中的高階函數範例:

map():這個內建函數接受一個函數和一個或多個可迭代物件作為輸入,然後傳回一個將輸入函數應用於可迭代物件的每個元素的迭代器。

def square(n):  
    return n * n  
numbers = [1, 2, 3, 4, 5]  
squared = map(square, numbers)  
print(list(squared))  # Output: [1, 4, 9, 16, 25]

filter():這個內建函數接受一個函數和一個可迭代物件作為輸入,然後傳回一個迭代器,該迭代器產生那些使得輸入函數傳回True的元素。

def is_even(n):  
    return n % 2 == 0  
numbers = [1, 2, 3, 4, 5]  
even_numbers = filter(is_even, numbers)  
print(list(even_numbers))  # Output: [2, 4]

reduce():這個內建函數接受一個函數和一個可迭代物件作為輸入,然後使用該函數將可迭代物件中的元素兩兩結合,直到只剩下一個元素。

from functools import reduce  
def add(x, y):  
    return x + y  
numbers = [1, 2, 3, 4, 5]  
sum_of_numbers = reduce(add, numbers)  
print(sum_of_numbers)  # Output: 15

lambda函數:lambda函數是一種建立匿名函數的方式,非常適合短小的函數定義。

squared = list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))  
print(squared)  # Output: [1, 4, 9, 16, 25]

partial():這個函數從functools模組中,用於部分應用函數參數。

from functools import partial  
def add(x, y):  
    return x + y  
add_five = partial(add, 5)  # Create a function that adds 5 to its argument.  
print(add_five(3))  # Output: 8

以上是python高階函數有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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