zip即将多个可迭代对象组合为一个可迭代的对象,每次组合时都取出对应顺序的对象元素组合为元组,直到最少的对象中元素全部被组合,剩余的其他对象中未被组合的元素将被舍弃。
1
2
3
4
|
keys = [ 'one' , 'two' , 'three' ] values = [ 1 , 2 , 3 ] d = zip (keys, values) print ( list (d)) |
示例结果:
[('one', 1), ('two', 2), ('three', 3)]
可以看到我们由 zip 模拟了一个类似字典的一一对应的元组迭代对象,并将其转化为 list 类型查看,当然我们可以利用获取迭代对象生成真正的键值字典:
1
2
3
4
5
6
7
8
|
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
当我们想回退为迭代器组合之前的状态时,我们可以利用 * “解压”现在“压缩”过的新的迭代对象
1
2
3
4
5
|
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,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!原文链接:https://juejin.im/post/5cdacb9ee51d453a7d63b726