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])

 

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)) #从大到小

 

posted on 2017-06-22 22:52  lucaq  阅读(256)  评论(0编辑  收藏  举报

导航