首先用help(zip)来看一下帮助文档:
意思是说它返回的是一个元素都为tuple的list,第一个元素tuple由原先的序列1即seq1[0],序列2seq2[0],....组成,第二个元素tuple由seq1[1],seq2[0]....组成,以此类推。。。
举例说明:1。这是比较正常的:
>>> a,b=(1,2,3),(4,5,6) >>> zip(a,b) [(1, 4), (2, 5), (3, 6)]
(1,4)由a[0],b[0]组成,(2,5)由a[1],b[1]组成,(3,6)由a[2],b[2]组成
2。这个就有点特殊了。
>>> a=[1,2,3] >>> zip(a) [(1,), (2,), (3,)]
3。如下:
>>> a=[[1,2,3],[4,5,6]] >>> zip(*a) [(1, 4), (2, 5), (3, 6)] >>> zip(a) [([1, 2, 3],), ([4, 5, 6],)] >>>
个人理解,zip(*a)中*a有点类似于找到a的地址,即a[0],a[1]=[1,2,3],[4,5,6]中的右半部分,怎么说呢,有点像是去掉外面这层[]的包装外衣找到里面的本质一样。