#coding: UTF-8 -*-# 1.1 简单用法 求和num = lambda x, y, z: x + y + zprint(num(1, 2, 3)) # 6# 1.2 作为函数返回def action(x):return lambda y: x + y# 这里定义了一个action函数,返回了一个lambda表达式。其中lambda表达式获取到了上层def作用域的变量名x的值。# a是action函数的返回值,a(22),即是调用了action返回的lambda表达式。a = action(1)print(a(2)) # 3# 1.3 多参数f = lambda x, *args, para, **kwargs: [args, para, kwargs]print(f(1, 2, 3, para='number', name='Jack', sex='male')) # [(2, 3), 'number', {'name': 'Jack', 'sex': 'male'}]# 1.4 与 maplst = [1, 2, 3, 4, 5]print(list(map(lambda x: x * x, lst))) # [1, 4, 9, 16, 25]# 1.5 与 filter、reducefrom functools import reducelst = [1, 2, 3, 4, 5]f_res = filter(lambda x: x > 3, lst)r_res = reduce(lambda x, y: x * y, lst)print('大于3的数字有:', list(f_res)) # 大于3的数字有: [4, 5]print('累乘结果为:', r_res) # 累乘结果为:120# 1.6 与 if 判断f = lambda x: 'even' if x % 2 == 0 else 'odd'print(f(3)) # odd# 1.7 与 sorted sorted(iterable, key=None, reverse=False)L = [{'a': 1, 'b': 4}, {'a': 1111, 'b': 2}, {'a': 1111, 'b': 3}]L_sorted = sorted(L, key=lambda d: d['b'], reverse=False)print(L_sorted) # [{'a': 1111, 'b': 2}, {'a': 1111, 'b': 3}, {'a': 1, 'b': 4}]d = {'a': 25, 'c': 27, 'b': 20, 'd': 22}L_sorted = sorted(d.items(), key=lambda x: x[0])print(L_sorted) # [('a', 25), ('b', 20), ('c', 27), ('d', 22)]d = {'a': 25, 'c': 27, 'b': 20, 'd': 22}L_sorted = sorted(d.items(), key=lambda x: x[1])print(L_sorted) # [('b', 20), ('d', 22), ('a', 25), ('c', 27)]# 反转字符串排序,'moT', 'yrreJ', 'ekipS', 'ekyT'r_list = sorted(['Tom', 'Jerry', 'Spike', 'Tyke'], key=lambda x: x[::-1])print(r_list) # ['Spike', 'Tyke', 'Tom', 'Jerry']
文章转载自果果经典影视,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




