首先看这一段代码:
>>> 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')]
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did86666