map函数
map(fn,lsd) fn:是一个函数,可以使自己定义的,也可以是python内置的函数 lsd:是一个序列 功能:依次将lsd中的元素作用到fn上 属于惰性序列
通过map函数进行处理,将字符串型的列表装换称整型列表。
L = ["1","2","3","4","5"]
def func(key):
dict1={"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}
return dict1[key]
res = list(map(func,L))
print(res)
F:\学习代码\Python代码\venv\Scripts\python.exe F:/学习代码/Python代码/day6/高阶函数---map.py
[1, 2, 3, 4, 5]
Process finished with exit code 0
reduce函数
reduce(fn,lsd) fn:函数 lsd:序列 lsd中的前两个元素作用到fn上,然后得到一个结果,将得到的结果再次和第三个元素作用到fn上,依次类推 直到lsd序列中的所有的元素计算完毕为止。
通过reduce函数进行处理,将整型列表装转换成一个整数。
from functools import reduce
L = [1,2,3,4,5,6]
def func(var1,var2):
return var1*10 + var2
res = reduce(func,L)
print(res)
F:\学习代码\Python代码\venv\Scripts\python.exe F:/学习代码/Python代码/day6/高阶函数---reduce.py
123456
Process finished with exit code 0
from functools import reduce
L = ["2","4","6","7"]
res = list(map(int,L))
def func(a,b):
return a*10 + b
res2 = reduce(func,res)
print(res2)
F:\学习代码\Python代码\venv\Scripts\python.exe F:/学习代码/Python代码/day6/高阶函数---reduce.py
2467
Process finished with exit code 0
这个是对列表中的值进行大小写装换。
from functools import reduce
L = ["Jack","rose","TOM","JaxK"]
def func(var):
return var.capitalize()
res = list(map(func,L))
print(res)
F:\学习代码\Python代码\venv\Scripts\python.exe F:/学习代码/Python代码/day6/高阶函数---reduce.py
['Jack', 'Rose', 'Tom', 'Jaxk']
Process finished with exit code 0
对复杂的列表进行提取数字处理。
from functools import reduce
L = ["as3","23fsa","3ft567g",["asd54","4vgtr5","sdfgf"],"sfgd"]
L1 = []
for var in L:
if isinstance(var,list):
for i in var:
if isinstance(i,str):
for j in i:
if j.isdigit():
L1.append(j)
elif isinstance(var,str):
for i in var:
if i.isdigit():
L1.append(i)
res = list(map(int,L1))
def func(a,b):
return a*10 + b
res1 = reduce(func,res)
print(res1)
F:\学习代码\Python代码\venv\Scripts\python.exe F:/学习代码/Python代码/day6/高阶函数---reduce.py
32335675445
Process finished with exit code 0