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的值,而不是全部变量的name=‘winsdom‘

匿名函数

lambda关键字

格式:lambda 形参:return值

lambda x:x+1
lambda x,y,z:(x+1,y+1,z+1)

匿名函数,使用完后自动释放内存空间。

高阶函数

1、把函数当作参数传递给另一个函数(函数接收的参数是一个函数名)

2、返回值中包含函数

符合以上两个规则中任意一个的函数叫高阶函数

def test():
    name = ‘xl‘
    print(‘in the test‘)#非高阶函数

def test1():
    print(‘in the test1‘)#高阶函数
    return test

map内置函数

传入一个函数,一个可迭代对象,遍历可迭代对象,将可迭代对象用传入的函数作一个处理并返回操作结果

num_l = [1,3,5,2,10,4,6,9,8]#定义一个列表

new_num_l =list(map(lambda x:x+1,num_l))#传入一个自增1的匿名函数和一个列表,并将其转换成list形式赋值给new_num_l这个新列表
#结果是:
print(new_num_l)
new_num_l = [2, 4, 6, 3, 11, 5, 7, 10, 9]

自己实现:

num_l = [1,3,5,2,10,4,6,9,8]#定义一个列表

def add_one(x):
    #定义一个自增1的函数
    return x +1
def map_1(fucn,l):
    new_num_l = []#创建一个新列表
    for i in l:
        new_num_l.append(fucn(i))#遍历num_l,使用传入的函数自增1,然后加到新列表new_num_l当中去
    return new_num_l#返回新列表
new_num_l = map_1(add_one,num_l)#接收新列表
#new_num_l = map_1(lambda x:x+1,num_l)  #也可以直接传入匿名函数
print(new_num_l)
#结果是:
new_num_l = [2, 4, 6, 3, 11, 5, 7, 10, 9]

例:使用map内置函数将字符串转换成列表的形式,并且全部大写

name = ‘winsdom‘
name_list = list(map(lambda x:x.upper(),name))
print(name_list)
#结果是:
name_list = [‘W‘, ‘I‘, ‘N‘, ‘S‘, ‘D‘, ‘O‘, ‘M‘]

filter内置函数

传入一个函数,一个可迭代对象,遍历可迭代对象,将可迭代对象里的每一个元素做一个bool值判断,如果是Ture则保留下来

name_list = [‘xlc‘,‘hhc‘,‘hzzc‘,‘hc‘,‘winsdom‘]
print(list(filter(lambda x:x.endswith(‘m‘),name_list)))
#结果是:
[‘winsdom‘]
name_list = [‘xlc‘,‘hhc‘,‘hzzc‘,‘hc‘,‘winsdom‘]
print(list(filter(lambda x:not x.endswith(‘c‘),name_list)))
#结果是:
[‘winsdom‘]

自己实现:

name_list = [‘xlc‘,‘hhc‘,‘hzzc‘,‘hc‘,‘winsdom‘]
def end_with(x):
    #定义一个判断是否以c结尾的函数
    return x.endswith(‘c‘)
def filter_1(func,array):
    new_name_list = []#创建一个新列表
    for n in array:
        if not func(n):#判断  如果不是以c结尾则加入新列表
            new_name_list.append(n)
    return new_name_list

new_name_list = filter_1(end_with,name_list)
#new_name_list = filter_1(lambda x:x.endswith(‘c‘),name_list)#用匿名函数直接传入,由于filter_1里写了not 所以这里的匿名函数不需要写not
print(new_name_list)
#结果是:
new_name_list = [‘winsdom‘]

reduce内置函数

传入一个函数,一个可迭代对象,一个默认参数,将可迭代对象压缩成一个值返回

reduce在python2中可以直接使用,在python3中需要import

from functools import reduce

num_l = [1,3,5,100]
num = reduce(lambda x,y:x*y,num_l,2)
print(num)
#结果是:
num = 3000

自己实现:

from functools import reduce

num_l = [1,3,5,100]

def reduce_1(func,array,init = None):#init表示一个初始值
    if init == None:
        res = array.pop(0)
    else:
        res = init
    for i in  array:
        res = func(res,i)
    return res

res = reduce_1(lambda x,y:x*y,num_l,100)
print(res)

原文地址:https://www.cnblogs.com/winsdom/p/9102425.html

时间: 2024-08-11 07:49:53

Python函数,匿名函数,高阶函数,内置函数——08的相关文章

第16天 匿名函数,递归,二分法,内置函数

匿名函数 1. 什么是匿名函数? 匿名函数就是用lambda关键字声明的一行没有名字的函数.既然有匿名函数,就肯定有有名函数,有名函数就是通过def关键字声明的有名字的函数. 2. 为什么要用匿名函数呢? 匿名函数的特点就是没有名字,不像有名函数,我们没有办法通过名字进行函数调用,只能在定义函数的阶段就调用调用函数,这也就决定了这样的函数只能被调用一次这个特点.(注意此处的调用一次只是说只能被一个时间调用一次)不仅如此,上面也说了匿名函数是通过lambda关键字声明的一行函数,这也就决定了匿名函

shell函数【参数传递及输入输出】&内置函数

Linux--shell脚本基础3:shell函数[参数传递及输入输出]&内置函数 函数定义 1 退出状态 1 参数传递 2 标准IO 2 脚本调试 2 AND&OR 3 内置命令补充 3 函数定义 函数定义: 在Shell 中,函数就是一组命令集或语句形成一个可用块 函数增强了shell的可编程能力 组成 function_name(){ statements } 函数名(在一个脚本中必须唯一) 函数体(命令集合) 注意 shell中不存在向前声明(先定义后使用) 必须在调用一个函数之前

python学习--装饰器、生成器、内置函数、json

这周学习了装饰器和生成器,写下博客,记录一下装饰器和生成器相关的内容. 一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里面每个函数都加一个功能,用来统计每个函数的运行时间是多少,找出来运行比较慢的函数,来优化代码,就需要添加一个新的功能,来统计程序的运行时间,那这样的话,就得修改每个函数了,需要改代码,但是代码特别多,改完了公司倒闭了,这时候装饰

python之装饰器、生成器、内置函数、JSON

一.装饰器: 装饰器,器在这里的意思是函数,也就是装饰函数.作用是给其他函数添加新功能,它可以不改变原有的函数,原来的函数和原来一模一样,什么都不需要改变,只需要在函数外部加上调用哪个装饰器就可以了,装饰器的作用就是不改变原来函数的调用方式,不改变原来函数的代码,给它增加了一个新功能.但是不改变函数,给它增加新功能,那是不可能的,装饰器只不过是偷偷改变了原来的函数而已,而原来的函数不知不觉. 学习装饰器前的知识储备: 1.函数即变量,在python里面函数就是一个变量,函数名就是变量名,函数名里

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笔记5:装饰器、内置函数、json

装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1) print('run....') 现有一个新的需求,希望可以记录下函数的运行时间,需要在代码中计算时间的代码: def run(): start_time = time.time() time.sleep(1) print('run....') end_time = time.time() pr

Python自动化运维之5、内置函数

python3.x内置函数 一些例子:后期慢慢接触到再补充 # help() 详细查看某个类有那些方法或者方法的具体使用 >>> help(str) >>> help(str.strip) # dir() 快速查看某个类有那些方法或者方法的具体使用 >>> dir(str) >>> dir(str.strip) # int() 实例化数字类型,或将其他类型转换为数字类型,或各种进制转换为十进制 (1)实例化数字类型 >>&

python之路基础-(二)内置函数、函数、装饰器

内置函数 python内置了以下函数,可以根据情况来使用 一.数学相关函数 divmod():取商和余数 >>> divmod(99,10) (9, 9) abs():取绝对值 >>> abs(-10) 10 len():查看序列长度 >>>list = [11,22,33,44] >>>r = len(list) >>>print(r)4 二.功能相关函数chr():在ascii码表中根据数字找出对应的字母 >

《Python运维开发之路》 内置函数&数据结构(六)

一.Python内置函数详解 Python内置函数图解    您也可以访问(里面有各种例子):https://docs.python.org/3/library/functions.html#next 以下分别举例子演示各种函数的使用  大后天更新,撸起袖子加油干!!! 一.Python常用数据结构 目录: 普通的列表结构 将列表当作堆栈使用 将列表当作队列使用 列表推导式 嵌套列表解析 del语句的使用 元组和序列 集合 字典 一些遍历技巧  大后天更新,撸起袖子加油干!!! 参考文献:htt

【Python】【基础知识】【内置函数】【help的使用方法】

原英文帮助文档: help([object]) Invoke the built-in help system. (This function is intended for interactive use.) If no argument is given, the interactive help system starts on the interpreter console. If the argument is a string, then the string is looked u