【map】
map()
函数接收两个参数,一个是函数,一个是Iterable
,map
将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator
返回。
计算该函数输入值为1到10,并返回一个数组
def f(x):
return x*x
L=list(range(1,11))
print (list(map(f,L)))
运行结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[Finished in 0.7s]
把第一个字母转化为大写字母,其余小写,例:
def normalize(name):
return name.capitalize()
L1 = ['adam', 'LISA', 'barT']
L2 = list(map(normalize, L1))
print(L2)
【reduce】
把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数,reduce
把结果继续和序列的下一个元素做累积计算
from functools import reduce
def f(x,y):
return x*10+y
L=[1, 3, 5, 7, 9]
print (reduce(f,L))
运行结果:
13579
【filter】
和map()
类似,filter()
也接收一个函数和一个序列。和map()
不同的是,filter()
把传入的函数依次作用于每个元素,然后根据返回值是True
还是False
决定保留还是丢弃该元素。
判断一个字符串,筛选出连续为三个数字及三个数字以上的字符,并以数组形式打印
例:
import re
s="37eu3rh45666hjfhdjhf9444njdhfjr445"
def f(x):
return len(x)>=3
L=[]
L=re.findall('[0-9]+',s)
print (list(filter(f,L)))
运行结果:
['45666', '9444', '445']
[Finished in 0.3s]
【sorted】
sorted()
函数就可以对list进行排序
sorted()
函数也是一个高阶函数,可以接收一个key
函数来实现自定义的排序,例如按绝对值大小排序:
sorted([36, 5, -12, 9, -21], key=abs, reverse=True)#reverse表示倒序显示
运行结果:
[36, -21, -12, 9, 5]
[Finished in 0.5s]
根据元组排序
students = [('B', 75), ('A', 92), ('B', 66), ('L', 88)]
print(sorted(students, key=lambda t: t[1]))
print(sorted(students, key=lambda t: t[1]), reverse=True))
运行结果:
[('B', 66), ('B', 75), ('L', 88), ('A', 92)]
[('A', 92), ('L', 88), ('B', 75), ('B', 66)]
[Finished in 0.3s]