Home  >  Article  >  Backend Development  >  How to use the functools module for functional programming in Python 3.x

How to use the functools module for functional programming in Python 3.x

PHPz
PHPzOriginal
2023-07-30 16:41:10909browse

Python’s own functools 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 the functools module and provide code examples.

  1. partialFunction

partialThe 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, the partial function fixes the first parameter of the multiply function to 2 or 3 and returns a new functiondouble and triple. When the double function is called, multiply(2, 4) is actually called, and the result 8 is returned.

  1. reduceFunction

reduceThe function is used to perform cumulative calculations on the elements in a sequence and return a single result. This function needs to be imported via from 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, the reduce function applies the add function to the elements in the sequence numbers, from left to The right is accumulated and summed in sequence, and the final result of 15 is returned.

  1. mapFunction

mapThe 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, the map function applies the square function to each element in the sequence numbers and Returns a new sequence squared_numbers.

  1. filterFunction

filterThe 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, the filter function applies the is_even function to each element in the sequence numbers and Returns a new sequence even_numbers, containing only elements that satisfy the condition.

By using the functions provided by the functools module, we can implement the ideas of functional programming using more concise and readable code. The partial, reduce, map and filter introduced above are the more commonly used functions in the functools 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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn