内建函数 map()
这个函数接收一个函数和一个可迭代对象作为参数, 并以某种方式应用这个函数.
- old_list = [11,22,33]
- old_str = "test"
- new_list = list(map(lambda i: i*2,old_list)) #对列表中每个值 * 2
- new_list = list(map(lambda i: str(i),old_list)) #将列表中的每个值转化为字符串
- new_str = list(map(lambda i: i.upper(),old_str)) #将字符串转化为列表并将值大写显示
map() 函数接收的第一个参数是一个函数, 当然这个函数可以是自己直接定义的函数, 为了方便, 我在上述中直接使用匿名函数表达式来代替辅助函数调用.
map() 函数接收的第二个参数是一个可迭代对象, 当然这个对象可以是列表, 可以是字符串, 可以是字典, 可以是任何可迭代对象的实例
实际上, map() 接收的第一个参数, 也就是函数, 第二个参数, 这个可迭代对象的修改操作. 在 Python 的内建函数中, 还有一个函数是这样来实现的.
内建函数 filter()
这个函数接收一个波尔函数值和一个可迭代对象, 并且对布尔函数值返回 True 的, 保存并返回, 对于可迭代对象布尔函数值返回 False 的, 都会删除掉;
所以, 这个函数实际上是对可迭代对象的一个筛选作用. 我们常常可以使用 filter() 函数, 对于满足条件的值进行保存, 并且对不满足条件的值进行过滤删除掉.
- old_list = [11,22,33]
- old_str = "test111"
- new_list = list(filter(lambda i: i>11,old_list)) #满足 i>22 的值组成一个新的列表
- new_str = "".join(list(filter(lambda i: i.isalpha(),old_str))) #去掉 old_str 字符串中的 111
实际上, 上述例子的 lambda 表达式返回 true 的, 都被保存了下来, 而这个可迭代的对象, 就是 filter() 函数接收的第二个参数;
来源: https://www.cnblogs.com/shsm/p/9291717.html