zoukankan      html  css  js  c++  java
  • python开发函数进阶:匿名函数

    一,匿名函数

    #简单的需要用函数去解决的问题 匿名函数的函数体 只有一行
    #也叫lambda表达式
    # cal2(函数名) = lambda n(参数) : n*n(参数怎么处理,并且返回值)
    #参数可以有多个,用逗号隔开
    #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
    #返回值和正常的函数一样可以是任意数据类型
    1.函数和匿名函数

     1 #!/usr/bin/env python
     2 #_*_coding:utf-8_*_
     3 
     4 def cal(n):
     5     return n*n
     6 print(cal(10))
     7 cal2 = lambda n:n*n
     8 print(cal2(10))
     9 
    10 def add(x,y):
    11     return x+y
    12 print(add(1,2))
    13 add2 = lambda x,y : x+y
    14 print(add2(1,2))
    15 
    16 #查找大于10的数字
    17 l = [10,11,8,12]
    18 def func(x):
    19     return x>10
    20 print(list(filter(func,l)))
    21 print(list(filter(lambda x:x>10,l)))
    22 
    23 #数字幂次方运算
    24 def pow2(x):
    25     return x*x
    26 map(pow2,l)
    27 print(list(map(lambda x:x*x , l)))

    2.匿名函数真的可以匿名,在和其他函数合作的时候

     1 #!/usr/bin/env python
     2 #_*_coding:utf-8_*_
     3 
     4 #查询字典Value值最大的
     5 dic={'k1':10,'k2':100,'k3':30}
     6 print(max(dic))    #K3
     7 func = lambda k:dic[k]  #values
     8 print(max(dic,key = func))
     9 print(max(dic,key = lambda k:dic[k]))
    10 #运行逻辑   dic >> lambda >> max >> key      #模糊
    11 
    12 
    13 #现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]
    14 #第一种
    15 t1 = (('a'),('b'))
    16 t2 = (('c'),('d'))
    17 print(list(zip(t1,t2)))   #[('a', 'c'), ('b', 'd')]
    18 print(list(map(lambda t:{t[0]:t[1]} ,zip(t1,t2))))  #zip拉链成列表 map有解压法
    19 
    20 #第二种
    21 print([{i:j} for i,j in zip(t1,t2)])  #item = ('a', 'c')  i,j = 'a', 'c'  元祖的解包
    22 func = lambda t1,t2 : [{i:j} for i,j in zip(t1,t2)]  #右边是返回值
    23 ret = func(t1,t2)
    24 print(ret)
  • 相关阅读:
    ZOJ2833*(并查集)
    大学(转载)
    Poj1503
    ibatis中select password('string')引起的bug
    servlet直接调用spring的serivce方法
    如何Eclipse自动提示
    servlet直接调用spring的serivce方法
    ibatis中select password('string')引起的bug
    如何Eclipse自动提示
    如何Eclipse自动提示
  • 原文地址:https://www.cnblogs.com/jokerbj/p/7291646.html
Copyright © 2011-2022 走看看