二、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

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

时间: 2024-10-14 10:41:26

二、Python开发---13、高阶函数与内置函数的相关文章

Python开发【第五篇】内置函数

abs() 函数返回数字的绝对值 __author__ = "Tang" a = -30 print(abs(a))# 30 all() 函数用于判断给定的可迭代参数iterable中的所有元素是否都为True,如果是则返回True,否则返回False 如果iterable的所有元素不为0.''".False或者iterable为空,all(iterable)返回True,否则返回False:注意 空列表 空元组 空字典 空字符串是True __author__ = &quo

Python开发【第六篇】内置函数 和 匿名函数

阅读目录 一. 匿名函数 1.什么是匿名函数? 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数 #匿名就是没有名字 def func(x,y,z=1): return x+y+z #匿名 lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用一次就释放,除非让其有名字 func= lambda x,y,z=1:x+y+z func(1,2,3) #让其有名字就没有意义 原文地址:https://www.cnblogs.com/wangfeng

python协程函数、递归、匿名函数与内置函数使用、模块与包

目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a.生成器相关python函数.装饰器.迭代器.生成器,我们是如何使用生成器的.一个生成器能暂停执行并返回一个中间的结果这就是 yield 语句的功能 : 返回一个中间值给调用者并暂停执行. 我们的调用方式为yeild 1的方式,此方式又称为生成器的语句形式. 而使用生成器的场景:使用生成器最好的场景就

JavaScript原生函数(内置函数)

1.JavaScript原生函数(内置函数) JavaScript原生函数(内置函数)有: String() Number() Boolean() Array() Object() Function() RegExp() Date() Error() Symbol() 2.创建内置函数 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> &l

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

高阶函数:1.  函数名是一个变量,函数名可以进行赋值 2. 函数名可以作为函数参数,还可以作为函数返回值(函数名称作为函数返回值时返回的是:函数的地址:print 这个返回值的调用相当于执行这个函数. 函数调用作为函数返回值相当于返回这个函数的执行结果) def f(n): return n*n def foo(a, b, func): return func(a)+func(b) print(foo(1, 2, f)) # >>> 5 递归函数: 调用自身函数 设置结束条件 每次进入

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

函数 当一个函数的返回值是另一个函数的函数名时,只是返回该函数的内存地址,该函数的作用域不会发生改变. name = 'winsodm' def test(): name = 'xl' print('in the test') def test1(): print('in the test1') return test res = test1() res() #结果是: name = 'xl' 'in the test' #这里返回的test 之后运行 还是输入test里的变量name的值,而不

Day3-递归函数、高阶函数、匿名函数、内置函数

一.递归函数 定义:函数内部可以调用其它函数,如果调用自身,就叫递归. 递归特性: 1.必须有结束条件退出: >>> def calc(n): ... print(n) ... return calc(n+1) ... >>> calc(0) 0 1 ... 998 RecursionError: maximum recursion depth exceeded while calling a Python object 分析: 没有结束条件,超过最大递归次数999次后

高阶函数、内置函数

高阶函数:就是把函数当成参数传递的一种函数 python函数式编程 高阶函数:就是把函数当成参数传递的一种函数 1.函数名可以进行赋值: 2.函数名可以作为函数参数,还可以作为函数的返回值: a.函数是第一类对象 b.函数可以被赋值 c.可以被当做参数 d.可以当做返回值 e.可以作为容器类型的元素 def f(n): return n*n def foo(a,b,func): ret = func(a) + func(b) return ret foo(1,2,f) print(foo(1,2

Python自动化开发学习3-2-匿名函数、内置函数

匿名函数 如果函数值使用一次,并且结构结单(需要一行表达式),就可以使用匿名函数.匿名函数的好处: 程序一次行使用,所以不需要定义函数名,节省内存中变量定义空间 让程序更加简洁 普通函数: def test(x,y):     return x+y print(test(1,2)) 匿名函数: test = lambda x,y:x+y print(test(1,2)) lambda:定义一个匿名函数 冒号(:):分隔符 冒号之前的部分:函数的参数,可以无参数,但是冒号不能省 冒号之后的部分:函