Python基础(reduce,filter,map函数)

map函数:

  map函数特点:对可迭代对象中的每个元素进行相同的操作(例如每个元素+1等等)

 #————————————————map函数————————————————————
#对列表的各个元素实现加一功能
li=[1,2,3]
#定义一个加一函数
def func1(x):
return x+1 #第一种map函数使用方式---lambda
res1=map(lambda x:x+1,li)
print(list(res1)) #第二种map函数使用方式---普通函数
res2=map(func1,li)
print(list(res2))

map函数两种实现方式

map扩展(将列表中的数字全部变成字符串):

print(list(map(str,[1,2,3,4,5,6])))

reduce函数:

  reduce函数特点:从左到右对一个序列的项累计地应用有两个参数的函数,以此合并序列到一个单一值。(例如累加或累乘列表元素等等)

 #————————————————reduce函数————————————————————
#python3在使用reduce函数时需要导入模块
from functools import reduce
nums=[1,2,3,4] #实现乘法的普通函数
def func2(x,y):
return x*y #第一种使用reduce函数的方式---lambda
res3=reduce(lambda x,y:x*y,nums)
print(res3) #第二种使用reduce函数的方式---普通函数
res4=reduce(func2,nums)
print(res4)

reduce函数

filter函数:

 filter函数特点:对可迭代对象中的元素按照特定的条件进行筛选。(例如筛选列表中所有的偶数等等)

 #————————————————filter函数————————————————————
lis=[0,1,2,3,4,5,6] #定义筛选偶数的普通函数一
def func3(x):
if x%2==0:
return x #定义筛选偶数的普通函数二
def func4(x):
return x%2==0 #第一种使用filter函数的方式---lambda
res5=filter(lambda x:x%2==0,lis)
print(list(res5)) #在使用两个普通函数时使用时会有一些差异,第一种return 0被当做返回False,因此列表中没有获取到0这个元素,第二种则不会有这种情况。 #第二种使用filter函数的方式---普通函数一
res6=filter(func3,lis)
print(list(res6)) #第二种使用filter函数的方式---普通函数二
res7=filter(func4,lis)
print(list(res7))

filter函数

*filter的底层实现原理:

def foo(x):
return x>5 def filter(func,iter):
lst=[]
for i in iter:
if func(i):
lst.append(i)
return lst ret=filter(foo,[1,2,3,4,5,6,7,8,9])
print(ret)
上一篇:ThinkPHP 自动验证与自动填充无效可能的原因(转)


下一篇:itoa函数实现