from functools import reduce#reduce函数在python3的内建函数移除了,放入了functools模块 #map() list1 = [1,2,3,4,5,6,7,8,9] def map1(x): return x * x list2 = list(map(map1,list1))#map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list #print(list2)#[1, 4, 9, 16, 25, 36, 49, 64, 81] arr = list(map(str,list1)) #print(arr)#['1', '2', '3', '4', '5', '6', '7', '8', '9'] #reduce() numbers = [1,2,3,4,5,6] def add(x,y): return x + y #print(reduce(add,numbers)) #字符串数字转换成整数数字 def int2str(s): dict1 = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9} map1 = list(map(lambda x:dict1[x],s)) return reduce(lambda x,y:x*10+y,map1) #print(int2str('123'))#关键字lambda表示匿名函数,冒号前面的x表示函数参数,匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果 list2 = ['abc','Abc','aBc'] def lower1(arr):#利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字 def f1(x): str1 = '' for key,value in enumerate(x): # print(key,'---',value) if key == 0: str1 += value.upper() else: str1 += value.lower() return str1 l = list(map(f1,arr)) return l #print(lower1(list2))#['Abc', 'Abc', 'Abc'] #print(sum(list1))#sum()函数可以接受一个list并求和 list3 = [1,2,3] def prod(arr):#prod()函数,可以接受一个list并利用reduce()求积 def f1(x,y): xy = x * y return xy return reduce(f1,arr) print(prod(list3))
Python基础(map/reduce)
猜你喜欢
转载自www.cnblogs.com/xingxingclassroom/p/10873512.html
今日推荐
周排行