1,map:
参数:两个参数,前一个是函数, 后一个是一个Iterable
返回值:Iterator
作用:将后一个参数中的每一个数值传入第一个参数的函数,结果组成一个Iterator
用于列表:
a = map(lambda x : x * x * x, [1, 2, 3, 4]) print(list(a)) # [1, 8, 27, 64] #[1, 2, 3, 4]中的元素分别立方计算,组成一个新的iterator
用于字符串:
a = map(int, '234') print(list(a)) # [2, 3, 4] #把'234'中的每一个字符拿出来,并分别转化成int
2,reduce:
参数:两个参数,前一个是函数,函数必须有两个参数,后一个是一个序列。
作用:后一个序列参数中,序列前两个值先传入第一个参数的函数,返回的值作为该函数的第一个参数,并将序列的第三个值作为函数的第二个参数。依此类推。最后函数返回的值就是reduce的值。
a = reduce(lambda x, y: x * 10 + y, [5, 2, 3, 4, 1]) print(a) # 52341 # 先把5,2传入函数,得到52,再把52,3传入函数,得到523,依此类推
3,filter:
参数:一个函数,一个序列
返回值:Iterator,是传入的值的一部分
作用:将第二个参数每一个数值传入第一个函数,函数值返回True,保留这个数值,返回False,删除数值
筛选大于10的数:
a = filter(lambda x: x > 10, [2, 90, 8, 10, 20, 30]) print(list(a)) # [90, 20, 30]
4,sorted:
参数:多个
返回值:list
作用:排序,可以自定义根据什么条件来排序,可以倒序
对普通的数字组成的列表排序:
a = sorted([2, 6, 1, 8, 7]) print(a) # [1, 2, 6, 7, 8]
对字符串排序,返回一个列表:
a = sorted("32145") print(a) # ['1', '2', '3', '4', '5']
对字母排序,区分大小写
a = sorted(['b', 'a', 'G', 'D', 'c']) print(a) # ['D', 'G', 'a', 'b', 'c']
自定义排序,按距离数字8的距离排序:
def sort(x): return abs(x - 8) a = sorted([3, 7, 4, 22, 0], key=sort) print(a) # [7, 4, 3, 0, 22]
对字母排序,不区分大小写,并倒序
a = sorted(['g', 'B', 'A', 'e', 'w'], key=str.upper, reverse=True) print(a) # ['w', 'g', 'e', 'B', 'A']