【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(t1,t2)#得到打包对象
	print('打包结果:',z1)
	#使用*号进行解压
	print('解压结果:',list(zip(*z1)))
	
	结果:
	打包结果: <zip object at 0x000001DB4950F608>
	解压结果: [(1, 2, 3, 4), (5, 6, 7, 8)]

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

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

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

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

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

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

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

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

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

[9] requests使用session保持会话

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值