python 强大的zip函数的简单示例
对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 52php.cn的小编两巴掌来看看吧!
一、代码引导首先看这一段代码:
输出: jack 2001 beginman 2003 sony 2005 pcky 2000 再看这一段代码:
输出: sony 2005 pcky 2000 jack 2001 beginman 2003 发现它们之间的区别么? 最显而易见的是:第一种简洁、灵活、而且能顺序输入。 二、zip()函数它是Python的内建函数,(与序列有关的内建函数有:sorted()、reversed()、enumerate()、zip()),其中sorted()和zip()返回一个序列(列表)对象,reversed()、enumerate()返回一个迭代器(类似序列)
那么什么是zip()函数 呢?
我们help(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. 提示:不懂的一定多help
定义:zip([seql,...])接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。
zip()配合*号操作符,可以将已经zip过的列表对象解压 >>> zip(*result) [(1,3),(4,6)] 更近一层的了解: * 二维矩阵变换(矩阵的行列互换) 比如我们有一个由列表描述的二维矩阵 a = [[1,3],[4,6],[7,8,9]] 通过python列表推导的方法,我们也能轻易完成这个任务 print [ [row[col] for row in a] for col in range(len(a[0]))] [[1,4,7],[2,8],[3,9]] 另外一种让人困惑的方法就是利用zip函数: >>> a = [[1,9]] >>> zip(*a) [(1,7),8),9)] >>> map(list,zip(*a)) [[1,9]]
zip函数接受任意多个序列作为参数,将所有序列按相同的索引组合成一个元素是各个序列合并成的tuple的新序列,新的序列的长度以参数中最短的序列为准。另外(*)操作符与zip函数配合可以实现与zip相反的功能,即将合并的序列拆成多个tuple。 ①tuple的新序列 >>>>x=[1,y=['a','b','c'] >>>zip(x,y) [(1,'a'),'b'),'c')]
②新的序列的长度以参数中最短的序列为准. >>>>x=[1,2],'b')]
③(*)操作符与zip函数配合可以实现与zip相反的功能,即将合并的序列拆成多个tuple。 >>>>x=[1,'c'] >>>>zip(*zip(x,y)) [(1,('a','c')] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |