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)]