python3 匿名函数,map/reduce/filter等函数结合应用
匿名函数就是不需要显式的指定函数
# 平方函数
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])
map,reduce,filter函数应用(第一参数为函数,一般用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)) #从大到小