于 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 alpha2 o two gamma3 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)
