知行编程网知行编程网  2022-11-29 11:30 知行编程网 隐藏边栏  3 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python之lambda表达式的相关知识,希望可以帮到处于编程学习途中的小伙伴



Python 的 lambda 表达式



lambda表达式格式以及应用场景


1、lambda函数与list的结合使用

list = lambda:x for x in range(10)
print (list[0])
>>>9
list = lambda x:x for x in range(10)
print (list[0])
>>>0


2、map,filter,reduce函数

例子:

a = [('a',1),('b',2),('c',3),('d',4)]
a_1 = list(map(lambda x:x[0],a))

如上例,map函数的第一个参数是一个lambda表达式,输入一个对象,返回对象的第一个元素。第二个是需要操作的对象,这里有一个列表。在Python3中,map返回的是一个map对象,我们需要手动将其转化为list,结果为['a', 'b', 'c', 'd']

例子:

a = [1,2,3,4]
b = [2,3,4,5]
a_1 = list(map(lambda x,y:x+y,a,b))

上面的例子是为了说明lambda表达式参数可以有多个。返回结果为[3,5,7,9]

例子:

a = [1,2,3,4,5,6,7]
a_1 = filter(lambda x:x<4,a)

如上例,定义lambda表达式过滤a列表中小于4的元素,结果为[1,2,3]。 filter 函数直接返回一个列表,无需进一步转换。第三个是初始值。如果我们不给初始值,开始操作的两个元素是序列的前两个。否则它将使用我们给的初始值对序列的第一个元素进行操作,然后将结果对第三个元素进行操作,依此类推。最后一个例子的结果是 28

例子:

from functools import reduce #python3需要导入此模块
a = [1,2,3,4,5,6,7]
a_1 = reduce(lambda x,y:x+y,a)

reduce中使用的lambda表达式需要两个参数,reduce函数一共有三个参数。

第一个是 lambda 表达式,第二个是要累加的序列,第三个是初始值。我们没有给出初始值,所以开始操作的两个元素是序列的前两个。否则它将使用我们给的初始值对序列的第一个元素进行操作,然后将结果对第三个元素进行操作,依此类推。上一个示例的结果是 28。


3、字典多条件排序

例子:

dict = {'a':1,'b':2,'c':3,'d':4,'e':3,'f':1,'g':7}
sorted_dict_asc = sorted(dict.items(),key=lambda item:item[0])
sorted_dict_dsc = sorted(dict.items(),key=lambda item:item[0],reverse=True)

输出(第一个升序,第二个降序):

[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 3), ('f', 1), ('g', 7)]
[('g', 7), ('f', 1), ('e', 3), ('d', 4), ('c', 3), ('b', 2), ('a', 1)]]

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享