码迷,mamicode.com
首页 > 编程语言 > 详细

二、Python开发---13、高阶函数与内置函数

时间:2019-10-08 22:05:17      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:lam   return   pytho   ems   man   lis   代码块   inf   元组   

常用高阶函数

  技术图片

#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、高阶函数与内置函数

标签:lam   return   pytho   ems   man   lis   代码块   inf   元组   

原文地址:https://www.cnblogs.com/lanzhijie/p/11637881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!