ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Python `zip()`函数 > 原文: [https://thepythonguru.com/python-builtin-functions/zip/](https://thepythonguru.com/python-builtin-functions/zip/) * * * 于 2020 年 1 月 7 日更新 * * * `zip()`函数采用一个或多个序列,并将序列中的对应项组合成一个元组。 最短序列用完时它将停止。 在 Python 2 中,`zip()`返回一个实际的列表,如果您处理大量数据则效率不高。 因此,在 Python 3 中,`zip()`返回一个可迭代的对象,该对象可按需生成结果。 **语法**:`zip(iter1 [,iter2 [...]]) --> zip object` **Python 3** ```py >>> >>> zip([1, 2, 3, 4], "pow") <zip object at 0x7f3c1ceb51c8> >>> ``` 要产生结果,请在`list()`调用中包装`zip()`。 ```py >>> >>> list(zip([1, 2, 3, 4], "pow")) [(1, 'p'), (2, 'o'), (3, 'w')] >>> ``` 试试看: ```py zip_obj = zip([1, 2, 3, 4], "pow") print(list(zip_obj)) ``` **Python 2** ```py >>> >>> zip([1, 2, 3, 4], "pow") # In Python 2, list() call is not required [(1, 'p'), (2, 'o'), (3, 'w')] >>> ``` 这是一个实际示例,其中`zip()`用于并行迭代多个序列。 ```py >>> >>> 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 >>> ``` 试一试: ```py for i, j, k, l in zip([1, 2, 3], "foo", ("one", "two", "three"), {"alpha", "beta", "gamma"} ): print(i, j, k, l) ``` 这是另一个使用`zip()`函数创建字典的示例。 ```py >>> >>> keys = ['alpha', 'beta', 'gamma'] >>> values = [10, 20, 30] >>> >>> d = dict(zip(keys, values)) >>> d {'alpha': 10, 'beta': 20, 'gamma': 30} >>> ``` 试一试: ```py keys = ['alpha', 'beta', 'gamma'] values = [10, 20, 30] d = dict(zip(keys, values)) print(d) ``` * * * * * *