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)]
PS:Python3:zip()和*zip()函数
描述
- zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组
- *zip() 和zip()配合使用,具体看下面示例
Showing code by screenshot ~~
1. zip()
2. *zip()
总结
以上所述是小编给大家介绍的Python3 对象组合zip()和回退方式*zip,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!