1.内置高阶函数:map()
map()函数:接收两个参数,一个是函数,一个是序列
map()函数将传入的函数依次作用到序列的每个元素,并把结果作为新的序列返回
示例1:随机生成10个2~9的数,求阶乘,以列表形式输出
import random
def f(x):
res = 1
for i in range(1,x+1):
res *= i
return res
li = [random.randint(2,9) for i in range(10)]
print(li) #10个2~9的随机数
print(list(map(f,li))) #阶乘
示例2:将字符串s = '1 3 5 7 9’转化为整型并以列表形式输出
s = '1 3 5 7 9'
print(s.split())
print(list(map(int,s.split())))
2.内置高阶函数:reduce()
reduce():接收两个参数,把一个函数作用在一个序列上.
reduce()函数会把结果继续和序列的下一个元素做累积计算
示例3:
from functools import reduce #引入reduce函数
def multi(x,y):
return x*y
print(reduce(multi,range(1,5))) #输出为4的阶乘
3.内置高阶函数:filter()
filter()过滤函数:接收两个参数,一个是函数,一个是序列
filter函数把传入的函数依次作用于序列中的每个元素,然后根据返回值是True或False来决定保留或丢弃该元素
示例4:
def isodd(num):
if num % 2 == 0:
return True
else:
return False
print(list(filter(isodd,range(100)))) #filter()函数根据返回值是True或False来决定保留或者丢弃该元素
4.内置高阶函数:sorted()
格式如下:
sorted(序列,key=函数名)
示例5:列表info记录商品名称,对应的商品数量和商品价格
info = [
('x1',200,32),
('x2',40,12),
('x3',40,2),
('x4',1000,23),
('x5',40,5),
]
print(sorted(info)) #以商品名称升序(x1~x5)排序
#按照商品数量升序排列
def sorted_by_count(x):
return x[1]
print(sorted(info,key=sorted_by_count))
#按照商品价格升序排列
def sorted_by_price(x):
return x[2]
print(sorted(info,key=sorted_by_price))
#先按数量由小到大,若数量一样,再按价格由小到大
def sorted_by_count_price(x):
return x[1],x[2]
print(sorted(info,key=sorted_by_count_price))
结果如下: