python3 匿名函数,map/reduce/filter等函数结合应用

时间:2021-01-09 18:25:50

匿名函数就是不需要显式的指定函数

# 平方函数
def func1(x):
return x**2
print(func1)

# 平方函数匿名函数写法
func2=lambda x:x**2
print(func2)
print(func2(2))

匿名函数三个例子

f=lambda x:x**2
print(f(2))

f1
=lambda x,y:x+y
print(f1(1,2))

f2
=lambda x:x>1
print(f2(3))

 

max,zip函数应用

max函数,zip函数应用

# 薪水字典,打印出工资最好的那个人名
salaries={ 'egon':3000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':2000
}
print(max(salaries))
print(max(salaries.values()))

res
=zip(salaries.values(),salaries.keys()) #zip拉链

print(max(res)[-1])

 

mapreducefilter函数应用(第一参数为函数,一般用lambda)

map函数,映射

# 映射新列表
l=[1,2,3,4]
m
=map(lambda x:x**2,l)
print(list(m))


# 映射和匿名函数结合应用
names=['alex','wupeiqi','yuanhao']
print(list(map(lambda item:item+'666',names)))

 

reduce函数,合并

from functools import reduce

# 遍历出100以内的整数
res=0
for i in range(100):
res
+=1

# 打印出1到100整数相加的和
print(reduce(lambda x,y:x+y,range(100),100))
# lambda x,y:x+y 初始值和取值相加
#
range(100) 取值范围
#
100 初始值,如果范围改成range(101),初始值可以改成0

 

filter函数,过滤

# 过滤出结尾为‘666’的列表元素
names=['alex666','yuanhao666','wupeiqi666','egon']
print(list(filter(lambda name:name.endswith('_666'),names)))

 

sorted函数,排序

l=[1,2,4,9,-1]
print(sorted(l)) #从小到大
print(sorted(l,reverse=True)) #从大到小