zip(lista,listb)就是将两个列表拼在一起,依次拿出两个列表的元素组成一个新的tuple元素。并且与短的元素长度一致
>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
而zip(*list) 刚好相反,可以理解为 就是将组合好的list 重新解压出来。
>>> zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]
a,b = list(zip(*zipped))
这里因为解压出来的事两个tuple,所以要将其转换成列表还要在前面加上list()