一、map()
1.1.基本调用形态及作用
调用形态:map(function, list) —— 按条件进行
映射
其中,function 为处理函数,是映射的条件,简单时可用 lambda 匿名函数处理,复杂时可单独定义一个函数来处理;list 为待处理的列表,是映射的基础。
作用:将 list 中的每一项,按照 function 进行处理,并将处理结果返回为一个新的可迭代对象。
1.2.使用场景
1.2.1.类型转换
# 将序列中的每项都转换成int类型
tmp_list1 = ['1', '2', '3', '4', '5']
tmp_list2 = list(map(int, tmp_list1))
print("tmp list 1", tmp_list1)
print("tmp list 2", tmp_list2)
print("data type:", type(tmp_list2[0]))
1.2.2.序列映射
# 求序列中每项的平方
tmp_list2 = [1, 2, 3]
tmp_list3 = list(map(lambda x: x**2, tmp_list2))
print("tmp list 2:", tmp_list2)
print("tmp list 3:", tmp_list3)
二、filter()
2.1.基本调用形态及作用
调用形态:filter(function, list) —— 按条件进行
过滤
其中,function 为处理函数,是过滤的条件,简单时可用 lambda 匿名函数处理,复杂时可单独定义一个函数来处理;list 为待处理的列表,是过滤的基础。
作用:将 list 中的每一项,按照 function 进行筛选过滤,并将处理结果返回为一个新的可迭代对象。
2.2.使用场景
2.2.1.一切需要按条件进行过滤的场景
# 求0-9之间的偶数
tmp_list4 = list(range(10))
tmp_list5 = list(filter(lambda x:x % 2 == 0, tmp_list4))
print("tmp list 4:", tmp_list4)
print("tmp list 5:", tmp_list5)
三、总结
无论是map()、还是filter(),其实都可以通过
列表生成式的方式实现。
至于孰优孰劣,我的道行暂时不足以进行评价,未来有机会再填。
四、参考文档
map的相关参考文档:
filter的相关参考文档: