python相关知识点整理四(自己复习用)

filter, map, reduce

几句话就能讲明白

filter(function, iterable)  作用的是可迭代对象,list / tuple / dict / set / str
lists = ['11班01','11班02','12班02','13班02']  #可迭代对象
f = filter(lambda x: x.startswith('11班'),lists)  #遍历lists,当11班01满足x的函数时,提取出来,存储在f变量中。
print(list(f))   #结果 ['11班01', '11班02']  

当需要对一个列表进行一些计算并返回结果时,也就是一般用reduce是列表中的元素为int 或者 float。

from functools import reduce
l = [1,2,3,4,5]
r = reduce( lambda x, y: x +y, l)  #这个函数必须接收两个参数
print(r) #返回一个数字,而不是list

map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

l = [1,2,3,4,5]
l_s = map(lambda x: str(x),l)
print(list(l_s))   #['1', '2', '3', '4', '5']  遍历整个list,将函数作用在每个元素上。

l =['a','v','s']
l_s = map( lambda x: x.upper(),l)
print(list(l_s))   #['A', 'V', 'S'] 全部变成大写

for循环一次性读取2个参数

fund_list = [["2016","1"],["2016","2"],["2016",3],["2016","4"],["2017","1"],["2017","2"],["2017",3],["2017","4"]]
for i,j in fund_list:
    print(i,j)
#2016,1
#2016,2
#2016,3
def fun(x,y):
    print(int(x)+int(y))
for i,j in fund_list:
    fun(x,y)
#2015
#2014
...
这样,如果有个函数 fun需要传入2个参数,就可以直接用i和j做了。很方便。



阅读更多
个人分类: python
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭