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)]]
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python中将Array和DataFrame相互转换08/29
- ♥ 学习python需要java吗?12/16
- ♥ 如何在python中对数字进行排序11/24
- ♥ 如何在 python 中猜测数字12/07
- ♥ python写入csv而不覆盖原始数据09/23
- ♥ 自学应该用什么版本的python11/02
内容反馈