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']