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 函数的主要内容,如果未能解决你的问题,请参考以下文章

python使用上下文对代码片段进行计时,非装饰器

python 元组有用的函数,方法和片段。

Python代码阅读(第26篇):将列表映射成字典

VSCode自定义代码片段——声明函数

Python学习 :函数

VSCode自定义代码片段8——声明函数