python学习笔记之zip的用法

基础知识:
使用zip()函数来可以把列表合并,并创建一个元组对的列表。

python3.x版本中zip是一个可迭代对象,使用时必须将其放入list中全部显示

>>> a=[1,2,3]
>>> b=[4,5,6]
>>> zip(a,b)
<zip object at 0x000001E5FC78BC48>
>>> list(zip(a,b))
[(1, 4), (2, 5), (3, 6)]

zip()参数可以接受任何类型的序列

>>> l1,l2,l3=(1,2,3),(4,5,6),(7,8,9)
>>> list(zip(l1,l2,l3))
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

再看一个明显一点的zip的列子:

>>> x = ["id", "name", "age"]
>>> y = [3306,"dh",18]
>>> z = zip(x, y)
>>> print(list(z))
[('id', 3306), ('name', 'dh'), ('age', 18)]

可以明显的看出zip的作用了吧

同时也可以有两个以上的参数;当传入参数的长度不同时,zip能自动以最短序列长度为准进行截取,获得元组。

>>> str1='abc'
>>> str2='def123'
>>> list(zip(str1,str2))
[('a', 'd'), ('b', 'e'), ('c', 'f')]

zip类似于压缩与解压缩的操作:

>>> x=[1,2,3]
>>> y=[4,5,6]
>>> z=[7,8,9]
>>> xyz=zip(x,y,z)
>>> zyx=zip(*xyz)
>>> list(zyx)
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

zip函数将字典反转成列表形式:

>>> x = {'age':18,'name':'dh','id':3306}
>>> print(x.items())
dict_items([('id', 3306), ('name', 'dh'), ('age', 18)])
>>> print(x.values())
dict_values([3306, 'dh', 18])
>>> print(x.keys())
dict_keys(['id', 'name', 'age'])
>>> list(zip(x.values(),x.keys()))
[(3306, 'id'), ('dh', 'name'), (18, 'age')]

搭配for循环,支持并行迭代操作方法
zip()方法用在for循环中,就会支持并行迭代:

>>> l1=[1,2,3]
>>> l2=[2,3,8]
>>> for x,y in zip(l1,l2):
    print(x,y,'-->',x*y)    
1 2 --> 2
2 3 --> 6
3 8 --> 24
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值