a = [0, 1, 2, 3, 4, 5]与下面的显式函数sq()定义功能相同。
print(list(map(lambda x: x ** 2, a)))
def sq(x):
return x ** 2
a = [0, 1, 2, 3, 4, 5]
print(list(map(sq,a)))
输出结果都是:
[0, 1, 4, 9, 16, 25]
实际上这种情况下用列表推导式效果更好。a = [0, 1, 2, 3, 4, 5]参考:http://saltriver.blog.163.com/blog/static/226097154201652311165422
print([x ** 2 for x in a])
scores = [['Michael', 4.0], ['Lisa', 4.2], ['Jack', 5.0], ['Rose', 4.5], ['Tony', 3.5]]scores表示每个人和相应得分的嵌套列表,需要按得分进行排序操作,用Lambda表达式:
print('max_scores=', max(scores, key=lambda x: x[1]))
scores.sort(key=lambda x: x[1])
print('scores=', scores)
输出结果:max_scores= ['Jack', 5.0]scores= [['Tony', 3.5], ['Michael', 4.0], ['Lisa', 4.2], ['Rose', 4.5], ['Jack', 5.0]]Lambda的使用非常方便,但Python 为了防止Lambda的滥用,造成可读性下降和程序不清晰的问题, 限制Lambda只能由1条表达式组成。也就是回归Lambda的本质,执行简单操作的无名(匿名)函数。对于简单的,易于理解的,用lambda没问题,但是对于较复杂的操作和运算,进行正常的函数定义吧。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。