1. map()函数:
原型:map(fn,lsd)
参数1是函数
参数2是序列
功能:将传入的函数一次作用在序列中的每一个元素。并把结果作为一个新的Iterator返回。其实map函数就是一个for循环查找。需要functools库。
图示:

实例1:
# 实例1:from functools import reduce# python内置的map函数
def chr2int(str):
return {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}[str]
# return后面哪一窜表示将单个字符转换成对应的字面量整数,按照键去取值。
list1 = ["2","1","6","5"]
res = map(chr2int,list1)
# 运行过程:[chr2int("2") chr2int("1") chr2int("6") chr2int("5")]
print(res) # 惰性列表
print(list(res)) # 显式转换成列表
# [2, 1, 6, 5]
实例2:将整数元素的序列,转换为字符串型。
# 实例2: # 将整数元素的序列,转换为字符串型 # [1,2,3,4] --- ["1","2","3","4"] l = map(str,[1,2,3,4]) print(l) print(list(l)) # ['1', '2', '3', '4']
2. reduce()函数:
原型:reduce(fn,lsd)
参数1为函数
参数2为列表
功能:一个函数作用在序列上,这个函数必须接受两个参数,reduce把结果继续和序列的下一个元素累计计算。相当于一个递归算法。需要functools库。
举例:
reduce(f,[a,b,c,d])
f(f(a,b),c)
f(f(f(a,b),c),d)
实例1:
1 + 2
1 + 2 + 3
1 + 2 + 3
1 + 2 + 3 + 4
1 + 2 + 3 + 4 + 5
# 实例1:
# 1 + 2
# 1 + 2 + 3
# 1 + 2 + 3 + 4
# 1 + 2 + 3 + 4 +5
list2 = [1,2,3,4,5]
def mySum(x,y):
return x + y
r = reduce(mySum,list2)
print("r = ",r)
# r = 15
实例2:将字符串转换成对应的字面量数字。
# 实例2:
# 将字符串转成成对应字面量数字
# 比如:1356
# 0 * 10 + 1 = 1
# 1 * 10 + 3 = 13
# 13 * 10 + 5 = 135
# 135 * 10 + 5 = 1356
def str2int(str):
def fc(x,y):
return x * 10 + y
def fs(str):
return {"0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9}[str]
return reduce(fc,map(fs,list(str)))
print(str2int("1356"))
# 1356
from functools import reduce
来源:https://www.cnblogs.com/noah0532/p/10897642.html