好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

强大的zip

一、代码引导

首先看这一段代码:

>>> name=('jack','beginman','sony','pcky')
>>> age=(2001,2003,2005,2000)
>>> for a,n in zip(name,age):
    print a,n 

再看这一段代码:

all={"jack":2001,"beginman":2003,"sony":2005,"pcky":2000}
 for i in all.keys():
     print i,all[i] 

发现它们之间的区别么?

最显而易见的是:第一种简洁、灵活、而且能顺序输入。

二、zip()函数

它是Python的内建函数,(与序列有关的内建函数有:sorted()、reversed()、enumerate()、zip()),其中sorted()和zip()返回一个序列(列表)对象,reversed()、enumerate()返回一个迭代器(类似序列)

>>> type(sorted(s))
  
 >>> type(zip(s))
  
 >>> type(reversed(s))
  
 >>> type(enumerate(s))
   

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

>>> z1=[1,2,3]
 >>> z2=[4,5,6]
 >>> result=zip(z1,z2)
 >>> result
 [(1, 4), (2, 5), (3, 6)]
 >>> z3=[4,5,6,7]
 >>> result=zip(z1,z3)
 >>> result
 [(1, 4), (2, 5), (3, 6)]
 >>> 

③(*)操作符与zip函数配合可以实现与zip相反的功能,即将合并的序列拆成多个tuple。

>>>>x=[1,2,3],y=['a','b','c']

>>>>zip(*zip(x,y))

[(1,2,3),('a','b','c')]

查看更多关于强大的zip的详细内容...

  阅读:48次

上一篇: Python内置函数

下一篇:Python内置函数locals