【python实用特性】- zip函数

zip: python的打包函数,可将两个或两个以上的可迭代对象按下标对应打包为一个个元组,得到一个新的以元组为元素的可迭代对象。

实例如下:

  • 打包
	t1 = [1,2,3,4]
	t2 = [5,6,7,8]
	t3 = [9,10]
	#迭代对象长度相同
	print('长度相同时:',list(zip(t1,t2)))
	#迭代对象长度不同
	print('长度不同时:',list(zip(t1,t3)))
	#多个迭代对象
	print('多个迭代对象:',list(zip(t1,t2,t3)))

	结果:
	长度相同时: [(1, 5), (2, 6), (3, 7), (4, 8)]
	长度不同时: [(1, 9), (2, 10)]
	多个迭代对象: [(1, 5, 9), (2, 6, 10)]

小结: 长度相同时,生成的元组个数与任一可迭代对象相等;长度不同时,以最短的可迭代对象为基准进行打包。

  • 遍历
	a = [1,2,3,4]
	b = [5,6,7,8]
	c = [9,10,11,12]
	for za,zb,zc in zip(a,b,c):
	    print('a里面元素:',za,'b里面元素:',zb,'c里面元素:',zc)

	结果:
	a里面元素: 1 b里面元素: 5 c里面元素: 9
	a里面元素: 2 b里面元素: 6 c里面元素: 10
	a里面元素: 3 b里面元素: 7 c里面元素: 11
	a里面元素: 4 b里面元素: 8 c里面元素: 12

小结: 使用for循环进行遍历

  • 解压
    使用zip打包后,相当于得到了一个压缩包。如果想要恢复为原先的可迭代对象,可以在打包对象前加*进行解压。
	t1 = [1,2,3,4]
	t2 = [5,6,7,8]
	#使用*号进行解压
	z1 = zip(t2,t3)#得到打包对象
	print('解压结果:',list(zip(*z1)))
	
	结果:
	解压结果: [(5, 6), (9, 10)]

小结: 在打包对象前加*号可以进行解压。返回的结果是一个二维矩阵样式的可迭代对象。

博主其他文章推荐:
[1] 【python实用特性】-切片

[2] 【python实用特性】- 迭代、可迭代对象、迭代器

[3] 【python实用特性】- 列表生成式

[4] 【python实用特性】- yield生成器

[5] Python+selenium实现自动爬取实例

[6] python爬取豆瓣Top250-改进版

[7] requests 设置请求头、代理

[8] requests使用cookie模拟登陆豆瓣

[9] requests使用session保持会话

你可能感兴趣的:(python实用特性整理及应用)