python中的zip函数
python2已经不再维护,所以只讲zip函数在python3中的用法,官方说明(help(zip))如下:
要点如下:
- 参数是可迭代对象
- 返回值是元组
- 元组的元素来自于各个可迭代对象
- 元组的个数由多个迭代对象中元素个数最少决定
1、示例1
>>> x=[1,2,3]
>>> y=[4,5,6]
>>> z=[7,8,9]
>>> xyz=zip(x,y,z)
>>> list(xyz)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
从这个示例可以看出zip函数的基本运作方式。
2、示例2
>>> y=[4,5,6,7]
>>> x=[1,2,3]
>>> xy=zip(x,y)
>>> list(xy)
[(1, 4), (2, 5), (3, 6)]
zip函数的元组数按照元素较少的迭代对象产生。
3、示例3:
>>> x=[1,2,3]
>>> y=zip(x)
>>> list(y)
[(1,), (2,), (3,)]
zip函数在只有一个参数时运行结果。
4、示例4:
>>> x=zip()
>>> list(x)
[]
zip函数在没有参数时运行结果。
5、示例5:
>>> x=[1,2,3]
>>> y=[4,5,6]
>>> z=[7,8,9]
>>> xyz=zip(x,y,z)
>>> u=zip(*xyz)
>>> list(u)
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
在运行zip(*xyz)之前,xyz的值为:[(1,4,7),(2,5,8),(3,6,9)],那么zip(*xyz)等价于zip((1,4,7),(2,5,8),(3,6,9)),所以最后的运行结果为:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
参考资料:python的zip函数