Python-遍历-zip/map/filter/reduce

zip函数:

同时循环多个同样长的函数,并返回一个包含了每个参数元组对应元素的元组。

如果函数并不一致,则采用截取方式,使得返回的结果元组的长度为各个参数元组长度最小值。

函式说明:zip(seq1[,seq2[,seq3[...]]])--->[(seq1(0),seq2(0),...),(seq1(1),seq2(1),...),(...)]

1 >>>for x,y,z in zip([1,2,3],[4,5,6],[7,8,9])
2 >>>print x,y,z
3 1 4 7
4 2 5 8
5 3 6 9
1 >>>for x,y in zip([1,2,3],[4,5])
2 >>>print x,y
3 1 4
4 2 5

map函数:

Python内置函数

对“一个序列”的每一个元素应用被传入的函数,并且返回一个包含了所有函数调用结果的一个列表。

1 >>>counters = [1,2,3]
2 >>>def inc(x) :return x+10
3 ...
4 >>>list(map(inc, counters))
5 [11,12,13]
6 ...
7 >>> map(lambda x : x+10, counters)
8 [11,12,13]

如果给出了额外的可迭代参数,则对每个可迭代参数中的元素并行的应用函数。

1 >>> def abc(a, b, c):
2 ...     return a*10000 + b*100 + c
3 ...
4 >>> list1 = [11,22,33]
5 >>> list2 = [44,55,66]
6 >>> list3 = [77,88,99]
7 >>> map(abc,list1,list2,list3)
8 [114477, 225588, 336699]

filter函数:

filter(bool_func,seq):此函数的功能相当于过滤器。 调用一个布尔函数bool_func来迭代遍历每个seq中的元素,返回一个使bool_seq返回值为true的元素的序列。

1 >>> filter(lambda x : x%2 == 0,[1,2,3,4,5])
2 [2, 4]

reduce函数reduce(function, sequence, starting_value)

reduce(func,seq[,init]):func为二元函数,将func作用于seq序列的元素,每次携带一对(先前的结果以及下一个序列的元素),连续的将现有的结果和下一个值作用在获得的随后的结果上,最后减少我们的序列为一个单一的返回值:如果初始值init给定,第一个比较会是init和第一个序列元素而不是序列的头两个元素。

1 >>> reduce(lambda x,y : x + y,[1,2,3,4])   #1+2+3+4, 其中1,2当做最开始的两个计算值,分别赋于x,y
2 10
3 >>> reduce(lambda x,y : x + y,[1,2,3,4],5)  #1+2+3+4+5 其中1,5当做最开始的两个计算值,分别赋于x,y
4 15
时间: 2024-10-06 16:34:18

Python-遍历-zip/map/filter/reduce的相关文章

python学习--lambda map filter reduce yield

lambda: map

Python中map,filter,reduce的应用

事例1: l=[('main', 'router_115.236.xx.xx', [{'abc': 1}, {'dfg': 1}]), ('main', 'router_183.61.xx.xx', [{'abc': 0}, {'dfg': 1}]), ('main', 'router_52.11.xx.xx', [{'abc': 0}, {'dfg': 1}]), ('main', 'router_183.17.xx.xx', [{'abc': 1}, {'dfg': 1}]) ] 检查参数l

Swift详解之五-----------map,filter,reduce

map,filter,reduce 注:本文为作者自己总结,过于基础的就不再赘述 ,都是亲自测试的结果.如有错误或者遗漏的地方,欢迎指正,一起学习. 关于Swift 中String .数组 .字典的基本用法这里就不再赘述了,这些都很简单 不会的 在用得时候baidu下就行了.这里主要看下这几个高阶函数 map map方法,其获取一个闭包表达式作为其唯一参数. 数组中的每一个元素调用一次该闭包函数,并返回该元素所映射的值(也可以是不同类型的值). 具体的映射方式和返回值类型由闭包来指定. 当提供给

Python里的map、reduce、filter、lambda、列表推导式

Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map(f,l) Out[3]: [1, 4, 9, 16, 25, 36, 49, 64, 81] Reduce函数 原型:reduce(function, sequence, startValue),作用是将一个列表归纳为一个输出,使用方法: def f2(x,y): return x+y reduce

Python函数式编程——map()、reduce()

文章来源:http://www.pythoner.com/46.html 提起map和reduce想必大家并不陌生,Google公司2003年提出了一个名为MapReduce的编程模型[1],用于处理大规模海量数据,并在之后广泛的应用于Google的各项应用中,2006年Apache的Hadoop项目[2]正式将MapReduce纳入到项目中. 好吧,闲话少说,今天要介绍的是Python函数式编程中的另外两个内建函数map()和reduce(),而不是Google的MapReduce. 1.ma

lambda,map,filter,reduce

lambda 编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数.返回一个函数对象. func = lambda x,y:x+y func相当于 def func(x,y): return x+y l = lambda x: x[0] if x else '' 可以直接调l对列表进行处理 map,reduce,filter中的function都可以用lambda表达式来生成 map map函数会根据提供的函数对指定序列做映射. m

Python自学笔记-map和reduce函数(来自廖雪峰的官网Python3)

感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. Python内建了map()和reduce()函数. 我们先看map.map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. 举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3,

python里的map和reduce

有不少文章介绍python的map与reduce,这到底是什么样的东西呢? 先看看google的paper里对mapreduce的解释 http://static.googleusercontent.com/media/research.google.com/zh-CN//archive/mapreduce-osdi04.pdf MapReduce is a programming model and an associated implementation for processing and

Python中的 Map 和 Reduce

03 Map map()传入的第一个参数是f,map将f依次作用到序列的每个元素,并把结果作为新的Iterator返回. def f(x): return x * x 如果不用map,需要这么写: L = [] for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]: L.append(f(n)) 用map一行代码搞定: list(map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])) 另外一个map例子: list(map(str, [1, 2, 3, 4,