1.map函数:
- map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。遍历序列,对序列中每个元素进行操作,最终获取新的序列。(注意:python2返回一个列表,python3返回一个迭代器)
lis0 = [1,2,3,4,5,6,7]
p = map(lambda x:x**2,lis0)
print(p,type(p)) # <map object at 0x03941970> <class 'map'>
for i in p:
print(i)
2.reduce函数:
- reduce把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算。对于序列内所有元素进行累计操作,即是序列中后面的元素与前面的元素做累积计算(结果是所有元素共同作用的结果)
from functools import reduce #在 Python3 中,reduce() 函数已经被从全局名字空间里移除了,它现在被放置在 fucntools 模块里,如果想要使用它,则需要通过引入 functools 模块来调用 reduce() 函数
l = reduce(lambda x,y:x+y ,[1,2,3,4,5])
print(l) #15
3.filter函数:
- 和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,返回值是True则保留,否则舍弃
f = filter(lambda x:x%3==0,[1,2,3,4,5,6,7,8,9])
for i in f:
print(i)
4.sorted函数:
- 使用sorted()方法和list.sort()方法进行排序,其中sorted()排序之后还是list,list.sort()排序返回的是一个object,需要输出排序内容还需要进行print()
- sorted() 函数对所有可迭代的对象进行排序操作。
- sort 与 sorted 区别:
- sort是应用在 list上的方法,sorted可以对所有可迭代的对象进行排序操作。
list 的sort方法返回的是对已经存在的列表进行操作,而内建函数sorted方法返回的是一个新的list,而不是在原来的基础上进行的操作。
a = [{"age":16,"name":"a"},{"age":35,"name":"b"},{"age":20,"name":"c"}]
a = sorted(a,key=lambda x:x["age"],reverse=True)
print(a)
#[{'age': 35, 'name': 'b'}, {'age': 20, 'name': 'c'}, {'age': 16, 'name': 'a'}]
注意:以上函数主要基于python3,python2与之基本相同。