小甲鱼python学习总结之函数——lambda fillter() map() 闭包 递归

一.概念及用法。

1.lambda。

   1. 定义简单函数,没有具体函数名(匿函数)
   2. 用法: lambda(关键字) x(输入变量): f(x) (返回值)
   3. eg1:
        lambda x, y=3 : x * y    /等价于
        def fun_A(x, y=3):
      		return x * y
   4. eg2:
  		lambda x : x if x % 2 else None

2.filter().

   1.用法: filter( f(x)(函数) , 列表)  //列表中的数依次以自变量带
   入f(x), 若f(x) == 1(返回值为真),将满足该条件的X构成一个新列表。
   2.eg1:
   		list(filter(lambda n : not(n%3), range(1, 100))) //求出100
   		以内所有3的倍数

3.map().

  1. 用法: map(f(x)( 定义函数 ) , 列表(当自变量))   
  2. eg1:
  	list(map(lambda x, y : [x, y], [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))
  	输出:[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
  3.列表推到式对比。
[[x,y] for x in [1,3,5,7,9] for y in[2,4,6,8,10]]
[[1, 2], [1, 4], [1, 6], [1, 8], [1, 10], [3, 2], [3, 4], [3, 6], [3, 8], [3, 10], [5, 2], [5, 4], [5, 6], [5, 8], [5, 10], [7, 2], [7, 4], [7, 6], [7, 8], [7, 10], [9, 2], [9, 4], [9, 6], [9, 8], [9, 10]]

4.递归。

 1.用法:概念与c语言一样。
 2.eg:
def power(x, y):
    if y:
        return x * power(x, y-1)
    else:
        return 1
功能:x**y

5.闭包

 1.概念:定义函数中定义函数,理解看例子。
def funX():
    x = 5
    def funY():
        nonlocal x
        x += 1
        return x
    return funY

a = funX()
print(a())
print(a())
print(a())
结果:6  7   8
注意:nonlocal关键字  和 global 关键字
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页