当前位置:   article > 正文

Python内置函数大全_python内置函数大全表

python内置函数大全表

目录

一.数学运算(7个)

1.abs()         2. divmod()           3.max()        4.min()         5.pow:

6.round:对浮点数进行四舍五入求值

7.sum:对元素类型是数值的可迭代对象中的每个元素求和

二.类型转换(24个)

1.bool:        2.int:        3.float:        4.str:

5.complex:根据传入参数创建一个新的复数

6.bytearray:根据传入的参数创建一个新的字节数组

7.bytes:根据传入的参数创建一个新的不可变字节数组

8.memoryview:根据传入的参数创建一个新的内存查看对象

9.ord:返回Unicode字符对应的整数

10.chr:返回整数所对应的Unicode字符

11.bin:将整数转换成2进制字符串

12.oct:将整数转化成8进制数字符串

13.hex:将整数转换成16进制字符串

14.tuple:根据传入的参数创建一个新的元组

15.list:根据传入的参数创建一个新的列表

16.dict:根据传入的参数创建一个新的字典

17.set:根据传入的参数创建一个新的集合

18.frozenset:根据传入的参数创建一个新的不可变集合

19.enumerate:根据可迭代对象创建枚举对象

20.range:根据传入的参数创建一个新的range对象

21.iter:根据传入的参数创建一个新的可迭代对象

22.slice:根据传入的参数创建一个新的切片对象

23.super:根据传入的参数创建一个新的子类和父类关系的代理对象

24.object:创建一个新的object对象

三.操作序列(9个)

1.all:判断可迭代对象的每个元素是否都为True值

2.any:判断可迭代对象的元素是否有为True值的元素

3.filter:使用指定方法过滤可迭代对象的元素

4.map:使用指定方法去作用传入的每个可迭代对象的元素,生成新的可迭代对象

5.next:返回可迭代对象中的下一个元素值

6.reversed:反转序列生成新的可迭代对象

7.sorted:对可迭代对象进行排序,返回一个新的列表

8.zip:聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器

9.reduce:

四.对象操作(7个) 

1.help:返回对象的帮助信息

2.dir:返回对象或者当前作用域内的属性列表

3.id:返回对象的唯一标识符

4.hash:获取对象的哈希值

5.type:返回对象的类型,或者根据传入的参数创建一个新的类型

6.len:返回对象的长度

7.ascii:返回对象的可打印表字符串表现方式

8.format:格式化显示值

9.vars:返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表

五.反射操作(8个)

1.import 动态导入模块

2.isinstance:判断对象是否是类或者类型元组中任意类元素的实例

3.issubclass:判断类是否是另外一个类或者类型元组中任意类元素的子类

5.getattr:获取对象的属性值

6.setattr:设置对象的属性值

7.delattr:删除对象的属性

8.callable:检测对象是否可被调用

六.变量操作(2个)

1.globals:返回当前作用域内的全局变量和其值组成的字典

2.locals:返回当前作用域内的局部变量和其值组成的字典

七.交互操作(2个)

1.print: 向标准输出对象打印输出

2.input: 读取用户输入值

八.文件操作(1个)

1.open:使用指定的模式和编码打开文件,返回文件读写对象

九.编译执行(4个)

1.compile:将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值

2.eval: 执行动态表达式求值

3.exec:执行动态语句块

4.repr:返回一个对象的字符串表现形式(给解释器)

十.装饰器(3个)

1.property:标示属性的装饰器

2.classmethod:标示方法为类方法的装饰器

 3.staticmethod:标示方法为静态方法的装饰器

十一.其他

1.lambda的使用



一.数学运算(7个)

1.abs()             ---取绝对值 
  1. abs(-2)#>>2 类型int
  2. abs(-2.1)#>>2.1 类型float
2. divmod()     ---返回两个数值的商和余数(左商右余,返回类型为元组)
divmod(5,2) #>>(2,1) 返回类型元组(tuple)
3.max()            ---返回可迭代对象中的元素中的最大值或者所有参数的最大值
  1. max(1,2,3) #>>3
  2. max('1234') #>>4
  3. max(-1,0) #>>0
  4. max(-1,0,key=abs)#传入绝对值函数,>>-1
4.min()            ---返回可迭代对象中的元素中的最小值或者所有参数的最小值
  1. min(1,2,3) #>>1
  2. min('1234')#>>1
  3. min(-1,-2)#>>-2
  4. min(-1,-2,key=abs) #传入绝对值函数,>>-2
5.pow:返回两个数值的幂运算值或其与指定整数的模值
pow(2,3) #>>2**3=8
6.round:对浮点数进行四舍五入求值
  1. round(3.1415926,1)#>>3.1
  2. round(3.1415926,4)#>>3.1416
7.sum:对元素类型是数值的可迭代对象中的每个元素求和
  1. a=sum((1,2,3,4))
  2. b=sum([1,2,3,4])
  3. print(a)
  4. print(b)#>>10

二.类型转换(24个)

1.bool:根据传入的参数的逻辑值创建一个新的布尔值
  1. bool()#未传入参数
  2. #>>False
  3. bool(0)#0、空序列等为False
  4. #>>False
  5. bool(1)
  6. #>>True
2.int:根据传入的参数创建一个新的整数
  1. int()#不传入时为0
  2. #>>0
  3. int('123')
  4. #>>123
3.float:根据传入的参数创建一个新的浮点数
  1. float()
  2. #>>0.0
  3. float(3)
  4. #>>3.0
  5. float('3')
  6. #>>3.0
4.str:返回一个对象的字符串表现形式(给用户)
  1. str()#>>''
  2. str(None)#>>'None'
  3. str(123)#>>'123'
5.complex:根据传入参数创建一个新的复数
  1. complex()#什么都不传入时,返回复数0j
  2. #>>0j
  3. complex('1+2j') #传入字符串创建复数
  4. #>>1+2j
  5. complex(1,2)#实部,虚部
  6. #>>1+2j
6.bytearray:根据传入的参数创建一个新的字节数组
bytearray('中文','utf-8')
7.bytes:根据传入的参数创建一个新的不可变字节数组
bytes('中文','utf-8')
8.memoryview:根据传入的参数创建一个新的内存查看对象
v = memoryview(b'abcefg')
9.ord:返回Unicode字符对应的整数
  1. ord(a)
  2. #>>97
10.chr:返回整数所对应的Unicode字符
  1. chr(97)#参数类型为整数
  2. #>>a
11.bin:将整数转换成2进制字符串
  1. bin(6)
  2. #>>0b110
12.oct:将整数转化成8进制数字符串
  1. oct(10)
  2. #>>0o12
13.hex:将整数转换成16进制字符串
  1. hex(15)
  2. #>>0xf
14.tuple:根据传入的参数创建一个新的元组
  1. tuple() #不传入参数,创建空元组
  2. #>>()
  3. tuple('121') #传入可迭代对象。使用其元素创建新的元组
  4. #>>('1', '2', '1')
  5. a,*ids=map(int,input().split(' '))
  6. print(tuple(ids))
  7. #1 2 3 4 5 >>(2,3,4,5)
15.list:根据传入的参数创建一个新的列表
  1. list()#不传入参数创建空列表
  2. #>>[]
  3. list('abcd')
  4. #>>['a','b','c','d']
16.dict:根据传入的参数创建一个新的字典
  1. dict()#不传入参数创建空字典
  2. #>>{}
  3. dict(a=1,b=2)
  4. #>>{'a': 1, 'b': 2}
  5. dict(zip(['a','b'],[1,2])) # 可以传入映射函数创建字典
  6. #>>{'a': 1, 'b': 2}
  7. dict((('a',1),('b',2))) # 可以传入可迭代对象创建字典
  8. #>>{'a': 1, 'b': 2}
17.set:根据传入的参数创建一个新的集合
  1. set() # 不传入参数,创建空集合
  2. #>>set()
  3. set(range(10)) # 传入可迭代对象,创建集合
  4. #>>{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} -----<class 'set'>
18.frozenset:根据传入的参数创建一个新的不可变集合
  1. frozenset(range(10))
  2. #>>{0,1,2,3,4,5,6,7,8,9}
19.enumerate:根据可迭代对象创建枚举对象

enumerate(iterable, start=0)
iterable->一个可遍历的数据对象实例
start->索引对象实例的起始索引值

  1. seasons = ['Spring', 'Summer', 'Autumn', 'Winter']
  2. a=list(enumerate(seasons))
  3. print(a)#>>[(0, 'Spring'), (1, 'Summer'), (2, 'Autumn'), (3, 'Winter')]
  4. b=list(enumerate(seasons,start=1))#指定起始值
  5. print(b)#>>[(1, 'Spring'), (2, 'Summer'), (3, 'Autumn'), (4, 'Winter')]
  6. #顺序查找
  7. def linear_search(li,val):
  8. for ind,v in enumerate(li): #enumerate会给可迭代对象对应一个索引
  9. if v==val:
  10. return ind
  11. else:
  12. return
20.range:根据传入的参数创建一个新的range对象
  1. a=range(10)
  2. b=range(1,10)
  3. c=range(1,10,3) #range()左闭右开 [1,10) ,第三个参数为步长
  4. print(a)#>>range(0, 10)
  5. print(b)#>>range(1, 10)
  6. print(c)#>>range(1, 10, 3) -----<class 'range'>
  7. print(list(c))#>>[1, 4, 7]
21.iter:根据传入的参数创建一个新的可迭代对象
  1. a = iter('abcd') #字符串序列
  2. print(a) #>><str_iterator object at 0x00000247DEDF08B0>
  3. for _ in range(4):
  4. print(next(a))
  5. #>>a
  6. #>>b
  7. #>>c
  8. #>>d
22.slice:根据传入的参数创建一个新的切片对象
  1. c1 = slice(5)
  2. print(c1) #>>slice(None, 5, None)
  3. c2 = slice(2,5)
  4. print(c2) #>>slice(2, 5, None)
  5. c3 = slice(1,10,3)
  6. print(c3) #>>slice(1, 10, 3)
23.super:根据传入的参数创建一个新的子类和父类关系的代理对象
  1. class A:
  2. def __init__(self):
  3. print("Enter A")
  4. print("Leave A")
  5. class B(A):
  6. def __init__(self):
  7. print("Enter B")
  8. super(B, self).__init__()
  9. print("Leave B")
  10. class C(A):
  11. def __init__(self):
  12. print("Enter C")
  13. super(C, self).__init__()
  14. print("Leave C")
  15. class D(A):
  16. def __init__(self):
  17. print("Enter D")
  18. super(D, self).__init__()
  19. print("Leave D")
  20. class E(B, C, D):
  21. def __init__(self):
  22. print("Enter E")
  23. super(E, self).__init__()
  24. print("Leave E")
  25. E()

运行结果:

  1. #(E, (B, C, D), A, A, (D, C, B), E)
  2. Enter E
  3. Enter B
  4. Enter C
  5. Enter D
  6. Enter A
  7. Leave A
  8. Leave D
  9. Leave C
  10. Leave B
  11. Leave E
24.object:创建一个新的object对象
  1. a=object()
  2. print(a) #>> <object object at 0x000001BB70A67820>
  3. a.name='John'#不能设置属性

三.操作序列(9个)

1.all:判断可迭代对象的每个元素是否都为True值
  1. all([1,2])#列表中每个元素逻辑值均为True,返回True ----<class 'bool'>
  2. all([0,1,2]) #列表中0的逻辑值为False,返回False
  3. all([]) #空列表
  4. #>> True
  5. all(()) #空元组
  6. #>> True
  7. all({}) #空字典
  8. #>> True
2.any:判断可迭代对象的元素是否有为True值的元素
  1. any([0,1,2]) #列表有一个Ture,返回True
  2. any([0,0]) #False
  3. any([]) #空列表、空元组、空字典 >>False
3.filter:使用指定方法过滤可迭代对象的元素
  1. def ji(x):
  2. if x%2=1:
  3. return True #为真值即可
  4. print(list(filter(ji,range(10))))
  5. #>> [1, 3, 5, 7, 9]
  6. '''
  7. filter() 函数把传入的函数依次作用于每个元素,然后根据返回值是 True 还是 False,来决定保留或丢弃该元素。
  8. 参数说明:
  9. (1) function:用于实现判断的函数,可以为 None。
  10. (2) iterable:可迭代对象,如列表、range 对象等。
  11. (3) 返回值:返回一个迭代器对象。
  12. '''
4.map:使用指定方法去作用传入的每个可迭代对象的元素,生成新的可迭代对象
  1. def square(x):
  2. return x*x
  3. map(square,[1,2,3,4]) #>> [1,4,9,16]
  4. map(str,[1,2,3,4]) #>> ['1','2','3','4']
5.next:返回可迭代对象中的下一个元素值
  1. a = iter('abcd')
  2. >>> next(a)
  3. 'a'
  4. >>> next(a)
  5. 'b'
  6. >>> next(a)
  7. 'c'
  8. >>> next(a)
  9. 'd'
  10. >>> next(a)
6.reversed:反转序列生成新的可迭代对象
  1. a=reversed(range(10))
  2. list(a) #>>[9,8,7,6,5,4,3,2,1,0]
7.sorted:对可迭代对象进行排序,返回一个新的列表
sorted(iterable, /, *, key=None, reverse=False)
iterable:待排序的序列
key:排序规则
reverse:指定排序的方式,默认值False,即升序排列
  1. a = ['a','b','d','c','B','A']
  2. sorted(a) #>>['A', 'B', 'a', 'b', 'c', 'd'] #默认按字符ASCII码排序
  3. sorted(a,key = str.lower) # 转换成小写后再排序,'a'和'A'值一样,'b'和'B'值一样
  4. #>> ['a', 'A', 'b', 'B', 'c', 'd']
  5. a=[1,4,2,9,3,7,6]
  6. sorted(a,key=None,reverse=False) #>>[1, 2, 3, 4, 6, 7, 9]
  7. sorted(a,key=None,reverse=True) #>>[9, 7, 6, 4, 3, 2, 1]
8.zip:聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器
  1. x = [1,2,3] #长度3
  2. y = [4,5,6,7,8] #长度5
  3. list(zip(x,y)) # 取最小长度3
  4. #>> [(1, 4), (2, 5), (3, 6)]
9.reduce:先将 sequence 的前两个 item 传给 function,即 function(item1, item2),函数的返回值和 sequence 的下一个 item 再传给 function,即 function(function(item1, item2), item3),如此迭代,直到 sequence 没有元素,如果有 initial,则作为初始值调用。
 
  1. reduce(lambda x, y: x * y, [1, 2, 3, 4]) # 相当于 ((1 * 2) * 3) * 4
  2. #>>24

四.对象操作(7个) 

1.help:返回对象的帮助信息
help(str) #自行尝试
2.dir:返回对象或者当前作用域内的属性列表
  1. import math
  2. dir(math)
3.id:返回对象的唯一标识符
  1. a='Hello World!'
  2. id(a) #>> 1931871364208
4.hash:获取对象的哈希值
  1. hash('Hello World')
  2. #>>688806338109182509
5.type:返回对象的类型,或者根据传入的参数创建一个新的类型
  1. type(1) #>> <class 'int'>
  2. #使用type函数创建类型D,含有属性InfoD
  3. >>> D = type('D',(A,B),dict(InfoD='some thing defined in D'))
  4. d=D()
  5. d.InfoD
  6. #>> 'some thing defined in D'
6.len:返回对象的长度
  1. len('abcd')#>>4
  2. len([1,2,3,4]) #>>4
  3. #字符串,字节数组,元组,列表,range对象,字典,集合,不可变集合 均可
7.ascii:返回对象的可打印表字符串表现方式
  1. ascii(1) #>>'1'
  2. ascii('a') #>>"'a'"
  3. ascii('中文') #>>'\u4e2d\u6587' 非ascii字符
8.format:格式化显示值
  1. #字符串可以提供的参数 's' None
  2. format('some string','s')
  3. #>> 'some string'
  4. format('some string')
  5. #>> 'some string'
  6. #整形数值可以提供的参数有 'b' 'c' 'd' 'o' 'x' 'X' 'n' None
  7. format(3,'b') #转换成二进制
  8. #>>'11'
  9. format(97,'c') #转换unicode成字符
  10. #>>'a'
  11. format(11,'d') #转换成10进制
  12. #>>'11'
  13. format(11,'o') #转换成8进制
  14. #>>'13'
  15. format(11,'x') #转换成16进制 小写字母表示
  16. #>>'b'
  17. format(11,'X') #转换成16进制 大写字母表示
  18. #>>'B'
  19. format(11,'n') #和d一样
  20. #>>'11'
  21. format(11) #默认和d一样
  22. #>>'11'
  23. #浮点数可以提供的参数有 'e' 'E' 'f' 'F' 'g' 'G' 'n' '%' None
  24. format(314159267,'e') #科学计数法,默认保留6位小数
  25. #>> '3.141593e+08'
  26. format(314159267,'0.2e') #科学计数法,指定保留2位小数
  27. '3.14e+08'
  28. format(314159267,'0.2E') #科学计数法,指定保留2位小数,采用大写E表示
  29. #>> '3.14E+08'
  30. format(314159267,'f') #小数点计数法,默认保留6位小数
  31. #>> '314159267.000000'
  32. format(3.14159267000,'f') #小数点计数法,默认保留6位小数
  33. #>> '3.141593'
  34. format(3.14159267000,'0.8f') #小数点计数法,指定保留8位小数
  35. #>> '3.14159267'
  36. format(3.14159267000,'0.10f') #小数点计数法,指定保留10位小数
  37. #>> '3.1415926700'
  38. format(3.14e+1000000,'F') #小数点计数法,无穷大转换成大小字母
  39. #>> 'INF'
  40. #g的格式化比较特殊,假设p为格式中指定的保留小数位数,先尝试采用科学计数法格式化,得到幂指数exp,如果-4<=exp<p,则采用小数计数法,并保留p-1-exp位小数,否则按小数计数法计数,并按p-1保留小数位数
  41. format(0.00003141566,'.1g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留0位小数点
  42. #>> '3e-05'
  43. format(0.00003141566,'.2g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留1位小数点
  44. #>> '3.1e-05'
  45. format(0.00003141566,'.3g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留2位小数点
  46. #>> '3.14e-05'
  47. format(0.00003141566,'.3G') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留0位小数点,E使用大写
  48. #>> '3.14E-05'
  49. format(3.1415926777,'.1g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留0位小数点
  50. #>> '3'
  51. format(3.1415926777,'.1g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留0位小数点
  52. #>> '3'
  53. format(3.1415926777,'.3g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留2位小数点
  54. #>> '3.14'
  55. format(0.00003141566,'.1n') #和g相同
  56. #>> '3e-05'
  57. format(0.00003141566,'.3n') #和g相同
  58. #>> '3.14e-05'
  59. format(0.00003141566) #和g相同
  60. #>> '3.141566e-05'
9.vars:返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表
  1. class a(object):
  2. pass
  3. a.name='kim'
  4. vars(a)
  5. print(a.__dict__)
  6. #>> {'__module__': '__main__', '__dict__': <attribute '__dict__' of 'a' objects>, '__weakref__': <attribute '__weakref__' of 'a' objects>, '__doc__': None, 'name': 'kim'}

五.反射操作(8个)

1.import 动态导入模块
  1. import math
  2. #import 库函数/同列表py文件
2.isinstance:判断对象是否是类或者类型元组中任意类元素的实例
  1. isinstance(1,int)
  2. #>> True
  3. isinstance(1,str)
  4. #>> Fasle
  5. isinstance(1,(int,str))
  6. #>> True
3.issubclass:判断类是否是另外一个类或者类型元组中任意类元素的子类
  1. issubclass(bool,int)
  2. #>> True
  3. issubclass(bool,str)
  4. #>> False
  5. issubclass(bool,(str,int))
  6. #>> True

4.hasattr:检查对象是否含有属性

  1. #定义类A
  2. class Student:
  3. def __init__(self,name):
  4. self.name = name
  5. s = Student('Aim')
  6. hasattr(s,'name') #a含有name属性
  7. #>> True
  8. hasattr(s,'age') #a不含有age属性
  9. #>> False
5.getattr:获取对象的属性值
  1. #定义类Student
  2. class Student:
  3. def __init__(self,name):
  4. self.name = name
  5. getattr(s,'name') #存在属性name
  6. #>> 'John'
6.setattr:设置对象的属性值
  1. class Student:
  2. def __init__(self,name):
  3. self.name = name
  4. a = Student('John')
  5. print(a.name)
  6. #>> 'John'
7.delattr:删除对象的属性
  1. class Student:
  2. def __init__(self,name):
  3. self.name = name
  4. a= Student('John')
  5. delattr(a,'name')
8.callable:检测对象是否可被调用
  1. class B: #定义类B
  2. def __init__(self):
  3. print('B.call is True')
  4. print(callable(B))
  5. B()
  6. #>> True
  7. #>> B.call is True

六.变量操作(2个)

1.globals:返回当前作用域内的全局变量和其值组成的字典
  1. >>> globals()
  2. {'__spec__': None, '__package__': None, '__builtins__': <module 'builtins' (built-in)>, '__name__': '__main__', '__doc__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>}
  3. >>> a = 1
  4. >>> globals() #多了一个a
  5. {'__spec__': None, '__package__': None, '__builtins__': <module 'builtins' (built-in)>, 'a': 1, '__name__': '__main__', '__doc__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>}
2.locals:返回当前作用域内的局部变量和其值组成的字典
  1. def awa():
  2. print('is a')
  3. print(locals())
  4. a=1
  5. print(locals())
  6. awa()
  7. '''
  8. is a
  9. {}
  10. {'a': 1}
  11. '''

七.交互操作(2个)

1.print: 向标准输出对象打印输出
print('Hello World')
2.input: 读取用户输入值
  1. age=int(input('请问您多大了:'))
  2. a,b=map(int,input().split(' '))

八.文件操作(1个)

1.open:使用指定的模式和编码打开文件,返回文件读写对象
  1. a=open('text.text','rt') #rt 即write
  2. a.read() #读写操作

一般文件操作不会使用内置函数,建议调用os库或者是pathlib库

九.编译执行(4个)

1.compile:将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值
  1. code1 = 'for i in range(0,10): print (i)'
  2. compile1 = compile(code1,'','exec')
  3. exec (compile1)
2.eval: 执行动态表达式求值
  1. eval('1+2+3+4')
  2. #>> 10
3.exec:执行动态语句块
  1. exec('a=1+2') #执行语句
  2. print(a)
  3. #>> 3
4.repr:返回一个对象的字符串表现形式(给解释器)
  1. a='Hello World'
  2. print(repr(a))
  3. #>> 'Hello World'

十.装饰器(3个)

1.property:标示属性的装饰器
  1. class C:
  2. def __init__(self):
  3. self._name = ''
  4. @property
  5. def name(self):
  6. """i'm the 'name' property."""
  7. return self._name
  8. @name.setter
  9. def name(self,value):
  10. if value is None:
  11. raise RuntimeError('name can not be None')
  12. else:
  13. self._name = value
2.classmethod:标示方法为类方法的装饰器
  1. class C:
  2. @classmethod
  3. def f(cls,arg1):
  4. print(cls)
  5. print(arg1)
  6. C.f('e')
  7. #>> <class '__main__.C'>
  8. #>> e
 3.staticmethod:标示方法为静态方法的装饰器
  1. class Student(object):
  2. def __init__(self,name):
  3. self.name = name
  4. @staticmethod

十一.其他

1.lambda的使用

万能之王 Lambda 函数:

lambda 表达式可以用来声明匿名函数。lambda 函数是一种简单的、在同一行中定义函数的方法。lambda 函数实际生成了一个函数对象。
lambda 表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是函数的返回值。

lambda arg1,arg2,arg3… : <表达式> arg1/arg2/arg3
为函数的参数。<表达式>相当于函数体。运算结果是:表达式的运算结果。

Lambda函数只在一行中编写和创建,而在普通函数的中使用缩进
一般情况下,我们不使用Lambda函数,而是将其与高阶函数一起使用。高阶函数是一种需要多个函数来完成任务的函数,或者当一个函数返回任何另一个函数时,可以选择使用Lambda函数。

  1. f = lambda a,b,c:a+b+c
  2. print(f(2,3,4))
  3. g = [lambda a:a*2,lambda b:b*3,lambda c:c*4]
  4. print(g[0](6),g[1](7),g[2](8))

部分Python内置函数接受函数作为参数,典型的此类内置函数有这些:

filter函数
此时lambda函数用于指定过滤列表元素的条件。例如filter(lambda x: x % 3 == 0, [1, 2, 3])指定将列表[1,2,3]中能够被3整除的元素过滤出来,其结果是[3]。
sorted函数
此时lambda函数用于指定对列表中所有元素进行排序的准则。例如sorted([1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: abs(5-x))将列表[1, 2, 3, 4, 5, 6, 7, 8, 9]按照元素与5距离从小到大进行排序,其结果是[5, 4, 6, 3, 7, 2, 8, 1, 9]。
map函数
此时lambda函数用于指定对列表中每一个元素的共同操作。例如map(lambda x: x+1, [1, 2,3])将列表[1, 2, 3]中的元素分别加1,其结果[2, 3, 4]。
reduce函数
此时lambda函数用于指定列表中两两相邻元素的结合条件。例如reduce(lambda a, b: ‘{}, {}’.format(a, b), [1, 2, 3, 4, 5, 6, 7, 8, 9])将列表 [1, 2, 3, 4, 5, 6, 7, 8, 9]中的元素从左往右两两以逗号分隔的字符的形式依次结合起来,其结果是’1, 2, 3, 4, 5, 6, 7, 8, 9’

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/186577
推荐阅读
相关标签
  

闽ICP备14008679号