Python zip()
函数
于 2020 年 1 月 7 日更新
zip()
函数采用一个或多个序列,并将序列中的对应项组合成一个元组。 最短序列用完时它将停止。 在 Python 2 中,zip()
返回一个实际的列表,如果您处理大量数据则效率不高。 因此,在 Python 3 中,zip()
返回一个可迭代的对象,该对象可按需生成结果。
语法:zip(iter1 [,iter2 [...]]) --> zip object
Python 3
>>>
>>> zip([1, 2, 3, 4], "pow")
<zip object at 0x7f3c1ceb51c8>
>>>
要产生结果,请在list()
调用中包装zip()
。
>>>
>>> list(zip([1, 2, 3, 4], "pow"))
[(1, 'p'), (2, 'o'), (3, 'w')]
>>>
试试看:
zip_obj = zip([1, 2, 3, 4], "pow")
print(list(zip_obj))
Python 2
>>>
>>> zip([1, 2, 3, 4], "pow") # In Python 2, list() call is not required
[(1, 'p'), (2, 'o'), (3, 'w')]
>>>
这是一个实际示例,其中zip()
用于并行迭代多个序列。
>>>
>>> for i, j, k, l in zip([1, 2, 3], "foo", ("one", "two", "three"), {"alpha", "beta", "gamma"}):
... print(i, j, k, l)
...
1 f one alpha
2 o two gamma
3 o three beta
>>>
试一试:
for i, j, k, l in zip([1, 2, 3], "foo",
("one", "two", "three"),
{"alpha", "beta", "gamma"}
):
print(i, j, k, l)
这是另一个使用zip()
函数创建字典的示例。
>>>
>>> keys = ['alpha', 'beta', 'gamma']
>>> values = [10, 20, 30]
>>>
>>> d = dict(zip(keys, values))
>>> d
{'alpha': 10, 'beta': 20, 'gamma': 30}
>>>
试一试:
keys = ['alpha', 'beta', 'gamma']
values = [10, 20, 30]
d = dict(zip(keys, values))
print(d)