Python’s ownfunctools
module provides many tool functions for functional programming. It can make the code more concise and readable, and provides some higher-order functions and basic tools for functional programming. This article will introduce several common functions of thefunctools
module and provide code examples.
partial
Functionpartial
The function is used to partially apply a function, that is, fix some parameters of the function and return a new function. The sample code is as follows:
from functools import partial def multiply(x, y): return x * y double = partial(multiply, 2) triple = partial(multiply, 3) print(double(4)) # 输出8 print(triple(4)) # 输出12
In the above code, thepartial
function fixes the first parameter of themultiply
function to 2 or 3 and returns a new functiondouble
andtriple
. When thedouble
function is called,multiply(2, 4)
is actually called, and the result 8 is returned.
reduce
Functionreduce
The function is used to perform cumulative calculations on the elements in a sequence and return a single result. This function needs to be imported viafrom functools import reduce
. The sample code is as follows:
from functools import reduce def add(x, y): return x + y numbers = [1, 2, 3, 4, 5] result = reduce(add, numbers) print(result) # 输出15
In the above code, thereduce
function applies theadd
function to the elements in the sequencenumbers
, from left to The right is accumulated and summed in sequence, and the final result of 15 is returned.
map
Functionmap
The function is used to apply a function to each element in a sequence and return a new sequence. The sample code is as follows:
def square(x): return x ** 2 numbers = [1, 2, 3, 4, 5] squared_numbers = list(map(square, numbers)) print(squared_numbers) # 输出[1, 4, 9, 16, 25]
In the above code, themap
function applies thesquare
function to each element in the sequencenumbers
and Returns a new sequencesquared_numbers
.
filter
Functionfilter
The function is used to apply a conditional judgment function to each element in a sequence. Returns a new sequence of elements that satisfy the condition. The sample code is as follows:
def is_even(x): return x % 2 == 0 numbers = [1, 2, 3, 4, 5] even_numbers = list(filter(is_even, numbers)) print(even_numbers) # 输出[2, 4]
In the above code, thefilter
function applies theis_even
function to each element in the sequencenumbers
and Returns a new sequenceeven_numbers
, containing only elements that satisfy the condition.
By using the functions provided by thefunctools
module, we can implement the ideas of functional programming using more concise and readable code. Thepartial
,reduce
,map
andfilter
introduced above are the more commonly used functions in thefunctools
module. You can Apply in actual projects.
The above is the detailed content of How to use the functools module for functional programming in Python 3.x. For more information, please follow other related articles on the PHP Chinese website!