map/reduce
map()
函数接收两个参数,一个是函数,一个是Iterable。
map
将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator
返回。
举例:函数f(x)=x^2,把函数作用于一个list[1,2,3,4,5,6,7,8,9]
可用map实现:f(x)=x*x
r=map(函数名,iterator)返回结果。
map作为高阶函数,可以计算任意复杂的函数。
比如:str,记得以list输出。
reduce
把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数。
reduce
把结果继续和序列的下一个元素做累积计算。(类似于循环计算)
求和那个可以直接用sum()
把str转换成int的函数:见我函数。
filter
python内建的函数,用于过滤序列。
也是接收一个函数和一个序列。
和map()
不同的是,filter()
把传入的函数依次作用于每个元素,
然后根据返回值是True
还是False
决定保留还是丢弃该元素。
python可以直接返回一个表达式是True还是False,判定相等,用==。
可判断序列中的奇数偶数以及是否有空字符串。
s.strip()删除空字符的函数
str.strip([chars]);
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
filter返回的是一个惰性序列,需要用list接住。
用filter求素数:首先构造一个奇数序列因为偶数不是素数
先返回2
再从3开始,遇到他的倍数就删掉,构造出新的序列,再从5开始,周而复始的循环,用while true
最后输出for循环的时候记得加个限定条件,大于就break就完事了
sorted
可以直接对list排序,关键在于实现一个映射函数。
可以接收一个key
函数来实现自定义的排序,例如按绝对值大小排序
sorted(【L】,key=这个函数)key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序
还可以对字符串进行排序,默认按照ascii大小比较,但可以通过一些函数修改
比如key=str.lower
反向排序不需要改动key函数,直接加第三个函数:reverse=True