1、filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
# -*- coding: utf-8 -*-
# @Time : 2021/1/19 0019
# @Author : yang
# @Email : 2635681517@qq.com
# @File : test_filer.py
def f(n):
return n % 2 != 0
def use_filer(l):
"""
获取指定列表/元组中的基数
:param 1 list/tuple要过滤的数据
return:过滤好的数据列表
"""
# rest = filter(lambda n: n % 2 != 0, l)
rest = filter(f,l)
return rest
if __name__ == "__main__":
l = [1, 2, 3, 4, 5, 6, 7, 9, 8]
rest = use_filer(l)
print(list(rest))
```python
结果
[1, 3, 5, 7, 9]
map() 函数会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
# -*- coding: utf-8 -*-
# @Time : 2021/1/19 0019
# @Author : yang
# @Email : 2635681517@qq.com
# @File : test_map.py
def pow_numebr(l):
rest_list = []
for x in l:
rest_list.append(x * x *x)
return rest_list
def f(n):
return n*n*n
def pow_num_use_map(l):
"""
使用map函数计算给定列表的每一项的立方
:param l: list/type int类型的列表或者是元祖
:return: 原来列表中每一项的立方
"""
return map(f, l)
def pow_num_use_lambda(l):
"""
使用lambda函数计算给定列表的每一项的立方
:param l: list/type int类型的列表或者是元祖
:return: 原来列表中每一项的立方
"""
return map(lambda x:x*x,l)
if __name__ == "__main__":
l = [1, 2, 3, 4, 5]
rest = pow_numebr(l)
print(rest)
print("------------------")
rest1 = (map(pow_numebr,(l)))
print((rest1))
rest_map = pow_num_use_map(l)
print(list(rest_map))
print("--------------")
rest2 = pow_num_use_lambda(l)
print(list(rest2))
结果
[1, 8, 27, 64, 125]
------------------
<map object at 0x000002D2B4DA53C8>
[1, 8, 27, 64, 125]
--------------
[1, 4, 9, 16, 25]