解释:
后缀为zip的文件肯定都见过吧?zip是打包压缩好的一个文件,所以,zip()函数也简单的理解为打包压缩函数,将不同个数相同类型的字段结合在一起。
官方定义为:zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
看两段代码:
字符串:
a = '1111' b = '22222' print "字符串zip():",zip(a,b) print "字符串解压zip得到的是列表,里面是元组:",zip(*zip(a,b)) za,zb =zip(*zip(a,b)) print "za is {za},zb is {zb}".format(za=za,zb=zb)
结果:
字符串zip(): [('1', '2'), ('1', '2'), ('1', '2'), ('1', '2')]
字符串解压zip得到的是列表,里面是元组: [('1', '1', '1', '1'), ('2', '2', '2', '2')]
za is ('1', '1', '1', '1'),zb is ('2', '2', '2', '2')
列表:
la = [1,2,3,4] lb = [1,2,3,4,5] print "列表zip():",zip(la,lb) print "列表解压zip得到的是列表,里面是元组:",zip(*zip(la,lb)) zla,zlb = zip(*zip(la,lb)) print "zla is {zla},zlb is {zlb}".format(zla=zla,zlb=zlb)
执行结果:
列表zip(): [(1, 1), (2, 2), (3, 3), (4, 4)]
列表解压zip得到的是列表,里面是元组: [(1, 2, 3, 4), (1, 2, 3, 4)]
zla is (1, 2, 3, 4),zlb is (1, 2, 3, 4)
元组:
ta = [1,2,3,4] tb = [1,2,3,4,5] print "元组zip():",zip(ta,tb) print "元组解压zip得到的是列表,里面是元组:",zip(*zip(ta,tb)) zta,ztb = zip(*zip(ta,tb)) print "zta is {zta},ztb is {ztb}".format(zta=zta,ztb=ztb) 执行结果: 元组zip(): [(1, 1), (2, 2), (3, 3), (4, 4)] 元组解压zip得到的是列表,里面是元组: [(1, 2, 3, 4), (1, 2, 3, 4)] zta is (1, 2, 3, 4),ztb is (1, 2, 3, 4)
遍历:
la = [1,2,3,4] lb = [1,2,3,4,5] for i,j in zip(la,lb): print i,j 执行结果: 1 1 2 2 3 3 4 4
总结:有以上可以看出,1.只要可以迭代的相同类型的可以压缩成一个元素是元组的列表。
2.解压之后都是元素为元组的列表。
3.以长度最少的为标准。