文章目录
一、高阶函数
1、 map
- map将传入的函数依次作用到序列的每个元素,并且把结果作为新的序列返回
-
map(): 接收两个参数:一个是函数 ,一个是序列。map(function,iterable1,iterable2),function中的参数值不一定是一个x,也可以是x和y,甚至多个;后面的iterable表示需要参与function运算中的参数值,有几个参数值就传入几个iterable - map中如果传入的几个序列的长度不一,那么会依据最短的序列进行计算。
- Python3下的map()函数返回的是map对象,而map对象又是一个迭代器iterator,不再是list,故需要使用list()强制转换为列表。
- Python2下的map()函数直接返回的是列表。
例子:对一个序列[-1,3,-4,-5]的每一个元素求绝对值
- abs函数 : 返回数字的绝对值

输出:

对列表中的元素求阶乘
import random
def f(x):
res = 1
for i in range (1,x+1):
res = res * i
return res
l = [random.randint(2,7) for i in range(10)]
print(list(map(f,l)))

输出:

2、reduce函数
- reduce把函数作用在一序列上, 对一个序列进行压缩运算,得到一个值,其效果为:reduce(f,[x1,x2,x3,x4]) = f(f(x1,x2),x3),x4)
- reduce必须接受两个参数:函数和可迭代类型。而函数也必须接受两个参数。
- Python3下的reduce移到了
functools模块,使用之前需要from functools import reduce - Python2中的reduce是内置函数。
举个例子:累乘,1到9
from functools import reduce
print(reduce(lambda x,y:x*y,range(1,6)))


举个例子:累加,1到100
from functools import reduce
print(reduce(lambda x,y:x+y,range(4)))


3、filter过滤函数
- filter()函数接受函数和序列,函数作用于序列里的每个元素,对其进行判断,返回True或False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件的元素组成的新列表。
- filter(): 接收两个参数:一个是函数 ,一个是序列。 函数必须返回True或False
- Python3下的filter()函数返回的是filter对象,不再是list,故需要使用list()强制转换为列表。
- Python2下的 filter函数直接返回的是列表。
例子 :输出1~100的偶数

输出:

4、sort及sorted
- sort函数:仅可作用于list列表,在原list上直接排序,不会创建新的list。 Python3中,sort函数有两个可选参数:key,reverse。 参数reverse指定排序:reverse=False正序,reverse=True倒序。 参数key指定了只含一个参数的方法,用来从列表的每个元素提取比较键。Python2中,sort函数有3个函数:key,reverse,cmp。
- sorted函数:所有可迭代对象都可以用sorted来排序,不会改变原来的对象,排序后的结果是新生成的。
4.1 通过元素长度排序

输出:

4.2 通过元素的字符排序

输出:

4.3 以绝对值倒序排列数组


4.4 按照关键字排序

输出:

二、匿名函数
- 匿名函数:在Python中,不通过def来声明函数名字,而是通过lambda关键字来定义的函数。
- lambda函数能接收任何数量(可以是0个)的参数,但只能返回一个表达式的值,lambda函数是一个函数对象,直接赋值给一个变量,这个变量就成了一个函数对象。
- 语法:lambda 参数:表达式 先写lambda关键字,然后依次写匿名函数的参数,多个参数中间用逗号连接,然后是一个冒号,冒号后面写返回的表达式。
- 符合lambda函数的情况:(任意多个参数和一个返回值),并且只有一个地方会使用这个函数,不会在其他地方重用,可以使用lambda函数
1、求和


2、平方


3、偶数


练习
(2018-携程-春招题)一整形数组中,将数组中所有的0移动到末尾,非0项保持不变


3、奇数放在前面 偶数放在后面


本文详细介绍了Python中的高阶函数,包括map函数用于对列表元素求阶乘,reduce实现序列的压缩运算,filter用于过滤序列中的元素。同时讲解了sort及sorted函数的使用,如按元素长度、字符顺序、绝对值等进行排序。此外,还探讨了匿名函数的概念,给出求和、平方和判断偶数的例子,并提供了编程练习题。
1385

被折叠的 条评论
为什么被折叠?



