Python: zip()的使用

来源:互联网 发布:mac silverlight下载 编辑:程序博客网 时间:2024/05/21 22:50

以前使用zip ,只用过最简单的,合并两个列表,没有仔细深究过,后来在实验楼 做实验的时候,遇到了这样的一行代码:

[list(row) for row in zip(*field)]#field 是一个矩阵
  • 1

有点蒙了, 就查了查了,这俩博客的介绍挺仔细的 
Python零碎知识(2):强大的zip , 
Python的zip函数 
记录一下吧

zip()的基本使用方法


首先看help(zip)

Help on built-in function zip in module __builtin__:zip(...)    zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]    Return a list of tuples, where each tuple contains the i-th element    from each of the argument sequences.  The returned list is truncated    in length to the length of the shortest argument sequence.None
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

大意就是:

定义:zip([seql, …])接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。

通俗点就是把几个列表(0或者1或者多个)的对应位置的元素组成新的tuple, 这些新的tuple 构成一个list
直接用几个例子来说明:

示例

x = [1, 2, 3]y = [4, 5, 6]z = [7, 8, 9]xyz = zip(x, y, z)print xyz'''结果是:'''[(1, 4, 7), (2, 5, 8), (3, 6, 9)]#对应元素组成一个新的元组,元组构成列表#---------------------------------------##无参数时,x = zip()print x#结果是:[]#---------------------------------------##长度不等时,取长度的最小的x = [1, 2, 3]y = ['a', 'b', 'c', 'd']xy = zip(x, y)print xy#结果是:[(1, 'a'), (2, 'b'), (3, 'c')]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

常用的方法


#--------------------------------------##可变参数传递的使用(很常用一种用法),这个可以用矩阵的转置o~如下:实验#楼的那代码就是转置矩阵x = [[1,2,3],     [4,5,6],     [7,8,9]]y = zip(*x)print y#结果是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]#转置就是:map(list, y) #这种也经常这样使用: 压缩与解压缩x = [1, 2, 3]y = [4, 5, 6]z = [7, 8, 9]xyz = zip(x, y, z)res = zip(*xyz)print res#结果可想而知, 压缩之后 在解压缩:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]''''''#还有就是字典的构造也经常使用:x = ['a', 'b', 'c']y = ['x', 'y', 'z']z = zip(x, y)d = dict(z)print d#结果为:{'a': 'x', 'c': 'z', 'b': 'y'}''''''#------------------------------##与iter合用:a = [1, 2, 3, 4, 5, 6]b = zip(*([iter(a)] * 2))print b#结果是:[(1, 2), (3, 4), (5, 6)]http://blog.csdn.net/shomy_liu/article/details/46968651
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 去脚毛的方法 脸上去毛要多少钱 腋下去毛 美容去毛 怎么去除毛 怎么去腋下的毛 肛门去毛 腋下怎么去毛 腿部去毛方法 去唇毛好不好 猪蹄去毛方法 夏天去毛 怎样去手毛 光子去唇毛多少钱 女生腿毛长的原因 去唇毛大概要多少钱 腿毛长不出来 女生腿毛怎么去除 这样去毛 汗毛怎么去掉 怎样去除汗毛 嘴唇上的汗毛怎么去除 腿上的汗毛怎么去掉 怎么脱毛 体毛多的女生怎么办 女生汗毛重怎么办 怎么样才能不长胡子 怎样脱毛 怎么去除汗毛 如何去除汗毛 汗毛多怎么办 如何去除体毛 腿上汗毛太多怎么去除 如何去掉汗毛 明星怎么脱毛 嘴巴上的汗毛怎么去掉 脸上的汗毛怎么去除 脱毛吧 身上的汗毛怎么去除 腋下怎么脱毛 腿上汗毛怎么去除