Python开发---13高阶函数与内置函数
Posted 兰智杰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python开发---13高阶函数与内置函数相关的知识,希望对你有一定的参考价值。
常用高阶函数
#map list01 = [1,3,5,7,9] new_list01=map(lambda x:x*2,list01) print(list(new_list01)) #输出为[2, 6, 10, 14, 18] 将map对象转换为list list02 = [2,4,6,8,10] new_list02 = map(lambda x,y:x*y,list01,list02) print(new_list02) #<map object at 0x0000000001F0A518> print(list(new_list02)) #输出为[2, 12, 30, 56, 90] print(list(new_list02)) #输出为[] 用一遍就没了
#filter new_list03 = filter(lambda x:x>4,list02) print(list(new_list03)) #输出为[6, 8, 10]
#reduce from functools import reduce #引入一个模块 new_list04 = reduce(lambda x,y:x+y,list01) #list01 = [1,3,5,7,9],第一次将1赋给x,3赋给y,第二次将上次x+y=4的结果赋给x,list01中的5赋给y,以此类推 print(new_list04) #输出为25 new_list05 = reduce(lambda x,y:x+y,list02,0) #0用于对x的初始赋值 #list02 = [2,4,6,8,10],第一次将0赋给x,list02中2赋给y,第二次将上次x+y=2的结果赋给x,list02中的4赋给y,以此类推 print(new_list05) #输出为30
练习
1、格式化用户的英文名,要求首字母大写,其它字母小写
2、将用户英文名、年龄、性别三个集合的数据结合到一起,形成一个集合
3、过滤性别为男的用户
4、求性别为男的用户的平均年龄
name = [\'joe\',\'susan\',\'black\',\'lili\'] age = [18,19,20,21] sex = [\'m\',\'w\',\'m\',\'w\'] #格式化用户的英文名,要求首字母大写,其它字母小写 new_name = map(lambda x:x.title() ,name) print(list(new_name)) #输出为[\'Joe\', \'Susan\', \'Black\', \'Lili\'] #将用户英文名、年龄、性别三个集合的数据结合到一起,形成一个元祖列表 users = map(lambda x,y,z:(x,y,z),name,age,sex) new_users=list(users) print(new_users) #输出为[(\'joe\', 18, \'m\'), (\'susan\', 19, \'w\'), (\'black\', 20, \'m\'), (\'lili\', 21, \'w\')] #过滤出来性别为男的用户 man_users = filter(lambda x:x[2] == \'m\',new_users) man_users=list(man_users) print(man_users) #输出为[(\'joe\', 18, \'m\'), (\'black\', 20, \'m\')] #求性别为男的用户的平均年龄 from functools import reduce #引入一个模块 total_age = reduce(lambda x,y:x+y[1],man_users,0) print(total_age/len(man_users)) #输出为19.0
常用内置函数
#字典排序——通过内置函数sorted进行排序 dict = {\'a\':1,\'c\':2,\'b\':3} dict01 = sorted(dict.items()) #从小到大排 reverse默认False print(dict01) #输出为[(\'a\', 1), (\'b\', 3), (\'c\', 2)] dict02 = sorted(dict.items(),reverse = True) #内传入x中的元素为dict.items()列表的元组默认按元组的第一个元素排 print(dict02) #输出为[(\'c\', 2), (\'b\', 3), (\'a\', 1)] dict03 = sorted(dict.items(),key = lambda x:x[1],reverse= True) #内置函数有返回值 print(dict03) #输出为[(\'b\', 3), (\'c\', 2), (\'a\', 1)] print({k:v for k,v in dict01}) #字典推导式 输出为{\'a\': 1, \'b\': 3, \'c\':2} lsit01 = [ {\'name\':\'joe\',\'age\':18}, {\'name\':\'susan\',\'age\':19}, {\'name\':\'tom\',\'age\':17} ] dict04 = sorted(lsit01,key = lambda x:x[\'age\'],reverse=True) #传入x中的元素为list01中的字典元素 print(dict04)
num = [1,3,5] print(isinstance(num,int)) #输出为 False print(isinstance(num,(int,float,list))) #输出为 True a=\'100\';b=\'19\' print(eval(a)+eval(b)) #输出为119 print(eval(a+b)) #输出为10019 print(type(eval(a+b))) #输出为<class \'int\'> a = "{\'中单\': \'faker\', \'打野\': \'bengi\'}" print(type(a)) #输出为<class \'str\'> print(type(eval(a))) #输出为<class \'dict\'> print(eval(a)) #输出为{\'中单\': \'faker\', \'打野\': \'bengi\'} \'\'\' D:\\学习文件\\python\\面向对象\\python代码块.txt路径下保存了一个可执行的txt文件 里面是可执行的Python代码,如下所示 def fact(n): if n==1: return 1 else: return n*fact(n-1) t = fact(6) print(t) \'\'\' with open(\'D:\\学习文件\\python\\面向对象\\python代码块.txt\', \'r\') as f: s = f.read() exec(s) #输出为720
以上是关于Python开发---13高阶函数与内置函数的主要内容,如果未能解决你的问题,请参考以下文章