Python学习日记(3)Python内建函数map()、filter()和匿名函数表达式
内建函数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()函数接收的第二个参数;