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高阶函数与内置函数的主要内容,如果未能解决你的问题,请参考以下文章

python内置的几个高阶函数

python全栈开发-Day13 内置函数

14 python初学(高阶函数 递归函数 内置函数)

Python函数,匿名函数,高阶函数,内置函数——08

七. python进阶(内置高阶函数)

Python高阶函数