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]) 
<map object at 0x100d3d550>   

>>> 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]

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)]

你可能感兴趣的:(python,python)