python|python——lambda、map、filter函数

1.lambda表达式:类似于一种匿名函数,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用。
使用格式:
lambda 要传递给函数的参数:函数内部执行逻辑

lambda x,y: x*y

2.map内置函数,python3返回迭代器对象
map(function, params)
map(square, [1,2,3,4,5])

3.filter内置函数
filter(function, params)
filter(lambda x: x%2==0, [2,4,3,5,7])

map与filter的区别:
map:第一个参数是函数,返回的对每个元素进行函数计算的迭代器。
filter:过滤器,第一个参数也是函数,但是是个判断函数。返回的是过滤出来符合条件的元素的迭代器。
>>> res1 = map(lambda n: n > 5, range(10)) >>> lt1 = list(res1) >>> print(lt1) [False, False, False, False, False, False, True, True, True, True]>>> res2 = filter(lambda n: n > 5, range(10)) >>> lt = list(res2) >>> print(lt) [6, 7, 8, 9]

>>>python3 >>> def square(x) : ...return x ** 2 ...>>> map(square, [1,2,3,4,5]) >>> list(map(square, [1,2,3,4,5]))# 使用 list() 转换为列表 [1, 4, 9, 16, 25]>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5])) [1, 4, 9, 16, 25] >>>a = [3,4,1,2,54,6] b = list(filter(lambda x:x>2,a)) print(b) # [3, 4, 54, 6]

【python|python——lambda、map、filter函数】4.enumerate内置函数
将任何一刻迭代的对象,如列表、元组、字符串,可以同时返回数据+下标。实际函数返回的是enumerate对象,可以使用list转为列表。
>>> seq = ['one', 'two', 'three'] >>> for i, element in enumerate(seq): ...print i, element ... 0 one 1 two 2 three>>>print(list(enumerate(seq))) [(0,one), (1,two), (2,three)]

    推荐阅读