匿名函数定义python 匿名函数定义后的结果( 二 )


Python函数和模块的定义与使用 , 包括变量的类型及匿名函数用法 函数是组织好匿名函数定义python,可重复使用的,用来实现相关功能的代码段
函数提高了代码的重复利用率和应用的模块性 。
除Python自带的函数之外,也可以自己创建函数,叫做自定义函数
语法匿名函数定义python:
函数代码块以def开头
参数为输入值,放于函数名后口号里面,
函数内容以冒号:开始,函数体缩进 , return返回输出值
函数调用使用关键字参数来确定传入的参数值,此时,如果多个函数则不需要按照指定顺序 。
在定义函数时,指定参数默认值 。调用时如果不传入参数,则使用默认值
不定长部分如果没有指定参数,传入是一个空元组
加了两个星号**的参数会以字典的形式导入
/用来指明函数形参必须使用指定位置参数,不能使用关键字参数的形式 。
3.8版本之后的才能使用
不使用def定义函数,没有函数名
lamdba主体时一个表达式,而不是代码块,函数体比def简单很多
定义在函数内部的为局部变量,仅能在函数内部使用
定义在函数外部的为全局变量,可在全局使用
模块是将包含所有定义的函数和变量的文件,一般将同类功能的函数组和在一起称为模块 。
模块需要导入后,在调用相应函数进行使用
模块导入的方法:
从模块中导入一个指定的部分
把一个模块的所有内容全都导入
匿名函数 在Python中使用lambda创建匿名函数,所谓的匿名,是指不需要为这个函数指定一个名称.
匿名函数lambda只是一个表达式,函数体比def简单的多.
labmda arg1,arg2:expression
使用匿名函数创建常用的函数
无参数匿名函数
t = lambda : True
t() - True
等价于下面的def定义的函数
def func(): return True
func() -true
带参数匿名函数
lambda x : x 3 求x的三次方
lambda x,y=2:x y参数允许拥有默认值
匿名函数的调用
直接赋值给一个变量,然后跟普通的函数一样调用它
c = lambda x,y,z: x * y * z
c(2,3,4)
24
lambda返回一个元组
a = lambda *z : z
a('abc','def')
('abc','def')
返回一个字典
d = lambda **dict:dict
d({"a":2})
{"a":2}
lambda直接后面传参
(lambda x,y:x+y)(100,200)#300
大量的实例
字符串联合,有默认值
x = (lambda x = 'boo',y='too',z='zoo':x+y+z)
x(abc)
和列表联合使用
L = [lambda x : x 2,lambda x:x 3,lambda x:x**4]
for f in L;
print(f(2)) # 4,8,16
和字典结合使用
key = 'B'
dic = {'A':lambda:2 2,'B':lambda:24,'C':lambda:2 *8}
dic key# 8
求最小值
lower = lambda:x,y:x if xy else y
lower(2,5) # 2
和map以及list联合使用
import sys
showall = lambda x : list(map(sys.stdout.write,x))
showall(['Jerry\n','Sherry\n','Alice\n'])
lambda和map联合使用
out = lambda *x : sys.out.write(' '.join(map(str,x)))
out('This','is','a','book!\n')
This is a book!
判断字符串是否以某个字母开头
print(lambda x : x.startswith('b')('Bob')) # false
lambda 和 map,filter联合使用
squares = map(lambda x : x**2,rang(10))
filters = filter(lambda x: x5 and x50,squares)
lambda和sorted联合使用
death = [('James',32),('Fioman',22),('Yasanlun',35)]
list = sorted(death,key=lambda x : x[1])
求2-50之间的素数
nums = range(2,50 + 1)
for i in nums:
nums = filter(lambda x : x ==i or x %i,nums)
求两个列表元素的和

推荐阅读