Python3 对象组合zip()和回退方式*zip详解

zip概述

zip即将多个可迭代对象组合为一个可迭代的对象,每次组合时都取出对应顺序的对象元素组合为元组,直到最少的对象中元素全部被组合,剩余的其他对象中未被组合的元素将被舍弃。

keys = ['one', 'two', 'three']
values = [1, 2, 3]
d = zip(keys, values)
print(list(d))
复制代码

示例结果:

[('one', 1), ('two', 2), ('three', 3)]
复制代码

可以看到我们由zip模拟了一个类似字典的一一对应的元组迭代对象,并将其转化为list类型查看,当然我们可以利用获取迭代对象生成真正的键值字典:

keys = ['one', 'two', 'three']
values = [1, 2, 3]
d = zip(keys, values)

D = {}
for key, value in d:
    print(key, value)
    D[key] = value
print(D)
复制代码

示例结果:

one 1
two 2
three 3
{'one': 1, 'two': 2, 'three': 3}
复制代码

我们可以利用for循环迭代赋值给字典完成对应的键值映射,在Python3中我们还可以用一句话就可以完成D = dict(zip(keys,values)).

*zip

当我们想回退为迭代器组合之前的状态时,我们可以利用*“解压”现在“压缩”过的新的迭代对象


keys = ['one', 'two', 'three', 'four']
values = [1, 2, 3]
d = zip(keys, values)
older = zip(*d)
print(list(older))
复制代码

“解压”结果:

[('one', 'two', 'three'), (1, 2, 3)]
复制代码

转载于:https://juejin.im/post/5cdacb9ee51d453a7d63b726

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值