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

时间:2024-12-28 20:36:32

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

# 平方函数
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+'',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)) #从大到小