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.
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
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
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)
Output result:
Using the Lambda function, the code can be simplified a lot. Here is another example.
As shown in the figure above, the result list newlist is generated with one line of code using the lambda function.
The map() function maps a function to all elements of an input list.
map(function,iterable)
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
Output result:
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
If we don’t use the Map function, we need to use a for loop.
#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() 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])
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) # 计算列表和
The result sum1 = 15 is obtained, and the code execution process is shown in the animation below.
▲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)
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.
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)
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)
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}")
zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表[3]。
我们还是用两个列表作为例子演示:
colors = ['red', 'yellow', 'green', 'black'] fruits = ['apple', 'pineapple', 'grapes', 'cherry'] for item in zip(colors,fruits): print(item)
输出结果:
当我们使用zip()函数时,如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
prices =[100,50,120] for item in zip(colors,fruits,prices): print(item)
filter()函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表,其语法如下所示[4]。
filter(function, iterable)
比如举个例子,我们可以先创建一个函数来检查单词是否为大写,然后使用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)
输出结果:
今天分享的这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!