Python 函数
Posted cyx-12
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 函数相关的知识,希望对你有一定的参考价值。
1. 匿名函数
①.使用lambda来创建函数
②所谓匿名,即不在使用def这样的形式定义一个函数
③lambda只是一个表达式,函数体比def简单很多
④lambda的 主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去
⑤lambda函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间的参数
⑥虽然lambda函数看起来只能写一行,却跟c或c++的内联函数不同,后者的作用是调用小函数时不占用栈内存,从而增加运行效率
a = lambda x:x.upper() x = ‘ff‘ print(a(x)) print(‘‘.join(list(map(lambda x:x.upper(),x))))
FF
FF
2. global 和 nonlocal
# 内部作用域修改全局作用域变量 num = 1 def fun(): # 调用全局变量 global num print(num) # 修改全局变量 num =12 print(num) fun()
1 12
# 修改嵌套作用域(非全局作用域)中变量时使用nonlocal def num(): name = ‘sb‘ print(name) def num_1(): nonlocal name name = ‘xx‘ print(name) num_1() print(name) num()
sb
xx
xx
3. map()函数
格式: map(func, seq1[seq2,......])
第一个参数接收一个函数名,后面的参数接收一个或多个可迭代的序列,返回的是一个集合 (Python3 返回可迭代对象)
map()函数将func作用于seq中的每一个元素,并将所有调用的结果作为一个list返回
如果func为None,作用同zip().
list_1 = [1,2,3] set_2 ={1,2,3} dict_3 = {‘name‘:1,‘age‘:2,‘sex‘:3} print(list(map(lambda x, y, z:x * y * z,list_1,set_2,dict_3)))
[‘name‘, ‘ageageageage‘, ‘sexsexsexsexsexsexsexsexsex‘]
4. filter()函数
格式: filter(function, iterable)
filter()函数用于锅过滤序列,过滤掉不符合条件的元素,返回由符合元素组成的新列表
序列的每个元素作为参数传递给函数进行判断,然后返回True 或 False
最后将返回True的元素放到新列表中
iterable 是一个可迭代对象(例如:一个列表)
list_1 = [1,2,3] set_2 ={1,2,3} print(list(filter(lambda x:x >2,list_1))) print(set(filter(lambda x:x >2,set_2)))
[3]
{3}
5. reduce()函数
格式: reduce(function, iterable[, initializer])
initializer---可选,初始参数
reduce()函数会对参数序列中元素进行积累
从左到右对一个序列的项累计地应用有两个参数的函数,以此合并序列到一个单一值
如果提供了initializer参数,计算时它将被放在序列的所有项前面
如果序列是空的,它也就是默认的结果值了
list_1 = [1,2,3,4] from functools import reduce print(reduce(lambda x,y:x+y,list_1,10))
20
以上是关于Python 函数的主要内容,如果未能解决你的问题,请参考以下文章