匿名函数

匿名函数

  • 关键字 lambda

      cale = lambda n, m : n * m	#定义一个匿名函数
      print(cale(10, 20))	#求10和20的积
    
  • 匿名使用

    • lambda结合函数使用

        #实例1
        #求字典中value值的最大值对应的key
        dic = {'k1':10, 'k2':30, 'k3':20}	
        print(max(dic))
        #结果
        k3
        print(max(dic, key=lambda k: dic[k]))
        #结果
        k2
        
        #实例2	
        #筛选列表中大于10的数
        res = filter(lambda x:x>10, [1, 3, 5, 10, 15, 20])
        for i in res:
        	print(i)
        #结果
        15
        20
      
  • 带key参数的函数min()``max()``filter()``map()``sorted()都能结合lambda

面试题

	#面试题1
	#将(('a'), ('b'))和(('c'), ('d'))变成[{'a': 'c'}, {'b': 'd'}]
	tu1 = (('a'), ('b'))
	tu2 = (('c'), ('d'))
	print(list(map(lambda x: {x[0]:x[1]}, zip(tu1, tu2))))
	
	#面试题2
	#问以下输出的结果
	def multipliters():
		return [lambda x:x * i for i in range(4)]	#这里是列表生成式
	print([m(2) for m in multioliters])
	#结果
	[6, 6, 6, 6]
	#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^#
	#修改一下
	def multipliters():
		return (lambda x:x * i for i in range(4))	#这里是生成器表达式
	print([m(2) for m in multioliters])
	#结果
	[0, 2, 4, 6]
原文地址:https://www.cnblogs.com/liliudong/p/9576862.html