Python社区  »  Python

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

若数 • 3 月前 • 52 次点击  
阅读 14

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)]
复制代码
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/32995
 
52 次点击  
分享到微博