Six magical built-in functions in Python

王林
Release: 2023-04-13 08:04:05
forward
1885 people have browsed it

Six magical built-in functions in Python

Life is short, novices learn Python!

I am a rookie brother. Today, we will share 6 magical built-in functions at once. In many computer books, they are also usually introduced as higher-order functions. And in my daily work, I often use them to make code faster and easier to understand.

Six magical built-in functions in Python

Lambda function

The Lambda function is used to create anonymous functions, that is, functions without names. It is just an expression, and the function body is much simpler than def. Anonymous functions are used when we need to create a function that performs a single operation and can be written in one line.

lambda [arg1 [,arg2,.....argn]]:expression

Copy after login

The body of lambda is an expression, not a code block. Only limited logic can be encapsulated in lambda expressions. For example:

lambda x: x+2

Copy after login

If we also want to call the function defined by def at any time, we can assign the lambda function to such a function object.

add2 = lambda x: x+2
add2(10)

Copy after login

Output result:

Six magical built-in functions in Python

Using the Lambda function, the code can be simplified a lot. Here is another example.

Six magical built-in functions in Python

As shown in the figure above, the result list newlist is generated with one line of code using the lambda function.

Map function

The map() function maps a function to all elements of an input list.

map(function,iterable)

Copy after login

For example, we first create a function to return an uppercase input word, and then apply this function to all elements in the list colors.

def makeupper(word):
return word.upper()
colors=['red','yellow','green','black']
colors_uppercase=list(map(makeupper,colors))
colors_uppercase

Copy after login

Output result:

Six magical built-in functions in Python

In addition, we can also use anonymous function lambda to cooperate with the map function, which can be more streamlined.

colors=['red','yellow','green','black']
colors_uppercase=list(map(lambda x: x.upper(),colors))
colors_uppercase

Copy after login

If we don’t use the Map function, we need to use a for loop.

Six magical built-in functions in Python

#As shown in the figure above, in actual use, the Map function will be 1.5 times faster than the for loop method of sequentially listing elements.

Reduce function

Reduce() is a very useful function when you need to perform some calculations on a list and return the result. For example, when you need to calculate the product of all elements of a list of integers, you can use the reduce function. [1]

The biggest difference between it and the function is that the mapping function (function) in reduce() receives two parameters, while map receives one parameter.

reduce(function, iterable[, initializer])

Copy after login

Next we use an example to demonstrate the code execution process of reduce().

from functools import reduce
def add(x, y) : # 两数相加
return x + y
numbers = [1,2,3,4,5]
sum1 = reduce(add, numbers) # 计算列表和

Copy after login

The result sum1 = 15 is obtained, and the code execution process is shown in the animation below.

Six magical built-in functions in Python

▲Code execution process animation

Combined with the above figure, we will see that reduce applies an addition function add() to a list[1 ,2,3,4,5], the mapping function receives two parameters, and reduce() continues to accumulate the result with the next element of the list.

In addition, we can also use anonymous function lambda to cooperate with the reduce function, which can be more streamlined.

from functools import reduce
numbers = [1,2,3,4,5]
sum2 = reduce(lambda x, y: x+y, numbers)

Copy after login

The output sum2= 15 is obtained, which is consistent with the previous result.

Note: reduce() has been moved to the functools module since Python 3.x [2]. If we want to use it, we need to import it from functools import reduce.

enumerate function

The enumerate() function is used to combine a traversable data object (such as a list, tuple or string) into an index sequence, while listing the data and data subscripts. It is generally used in for loops. Its syntax is as follows:

enumerate(iterable, start=0)

Copy after login

Its two parameters, one is a sequence, iterator or other object that supports iteration; the other is the starting position of the subscript, which starts from 0 by default, and can also be used since Defines the starting number of the counter.

colors = ['red', 'yellow', 'green', 'black']
result = enumerate(colors)

Copy after login

If we have a color list that stores colors, we will get an enumerate object after running it. It can be used directly in a for loop or converted to a list. The specific usage is as follows.

for count, element in result:
print(f"迭代编号:{count},对应元素:{element}")

Copy after login

Six magical built-in functions in Python

Zip 函数

zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表[3]。

我们还是用两个列表作为例子演示:

colors = ['red', 'yellow', 'green', 'black']
fruits = ['apple', 'pineapple', 'grapes', 'cherry']
for item in zip(colors,fruits):
print(item)

Copy after login

输出结果:

Six magical built-in functions in Python

当我们使用zip()函数时,如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。

prices =[100,50,120]
for item in zip(colors,fruits,prices):
print(item)

Copy after login

Six magical built-in functions in Python

Filter 函数

filter()函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表,其语法如下所示[4]。

filter(function, iterable)

Copy after login

比如举个例子,我们可以先创建一个函数来检查单词是否为大写,然后使用filter()函数过滤出列表中的所有奇数:

def is_odd(n):
return n % 2 == 1
old_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
new_list = filter(is_odd, old_list)
print(newlist)

Copy after login

输出结果:

Six magical built-in functions in Python

今天分享的这6个内置函数,在使用 Python 进行数据分析或者其他复杂的自动化任务时非常方便。

The above is the detailed content of Six magical built-in functions in Python. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:51cto.com
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template