常用高阶函数
#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