小祎

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

map

遍历序列,对序列中每个元素进行操作,最终获取新的序列。

li = [11, 22, 33]
new_list = map(lambda a: a + 100, li)
#new_list = map(lambda a: a + 100, [11, 22, 33])
print(list(new_list))
每个元素增加100
def abc(a, b, c):
    return a*10000 + b*100 + c

list1 = [11,22,33]
list2 = [44,55,66]
list3 = [77,88,99]

print(list(map(abc,list1,list2,list3)))

#结果
[114477, 225588, 336699]
二维数组
li1 = [11, 22, 33]
sl1 = [1, 2, 3]
new_list = map(lambda a, b: a + b, li1, sl1)
print(list(new_list))

#结果
[12, 24, 36]
再来一个~
>>> list1 = [11,22,33]
>>> map(None,list1)
[11, 22, 33]
>>> list1 = [11,22,33]
>>> list2 = [44,55,66]
>>> list3 = [77,88,99]
>>> map(None,list1,list2,list3)
[(11, 44, 77), (22, 55, 88), (33, 66, 99)]
若第一个参数为None

filter

对于序列中的元素进行筛选,最终获取符合条件的序列。

li = [11, 22, 33,34,534,2,12]

new_list = filter(lambda arg: arg > 22, li)
print(list(new_list))
#filter第一个参数为空,将获取原来序列

#结果
[11, 22, 33, 34, 534, 2, 12]
获取列表中大于12的所有元素集合

reduce

对于序列内所有元素进行累计操作

from functools import reduce
li = [11, 22, 33]
result = reduce(lambda arg1, arg2: arg1 + arg2, li)

# reduce的第一个参数,函数必须要有两个参数
# reduce的第二个参数,要循环的序列
# reduce的第三个参数,初始值

print(result)

#结果
66
获取序列所有元素的和

 

posted on 2016-12-19 21:00  小祎  阅读(220)  评论(0编辑  收藏  举报