# 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)
```
* * *
* * *
- 初级 Python
- python 入门
- 安装 Python3
- 运行 python 程序
- 数据类型和变量
- Python 数字
- Python 字符串
- Python 列表
- Python 字典
- Python 元组
- 数据类型转换
- Python 控制语句
- Python 函数
- Python 循环
- Python 数学函数
- Python 生成随机数
- Python 文件处理
- Python 对象和类
- Python 运算符重载
- Python 继承与多态
- Python 异常处理
- Python 模块
- 高级 Python
- Python *args和**kwargs
- Python 生成器
- Python 正则表达式
- 使用 PIP 在 python 中安装包
- Python virtualenv指南
- Python 递归函数
- __name__ == "__main__"是什么?
- Python Lambda 函数
- Python 字符串格式化
- Python 内置函数和方法
- Python abs()函数
- Python bin()函数
- Python id()函数
- Python map()函数
- Python zip()函数
- Python filter()函数
- Python reduce()函数
- Python sorted()函数
- Python enumerate()函数
- Python reversed()函数
- Python range()函数
- Python sum()函数
- Python max()函数
- Python min()函数
- Python eval()函数
- Python len()函数
- Python ord()函数
- Python chr()函数
- Python any()函数
- Python all()函数
- Python globals()函数
- Python locals()函数
- 数据库访问
- 安装 Python MySQLdb
- 连接到数据库
- MySQLdb 获取结果
- 插入行
- 处理错误
- 使用fetchone()和fetchmany()获取记录
- 常见做法
- Python:如何读取和写入文件
- Python:如何读取和写入 CSV 文件
- 用 Python 读写 JSON
- 用 Python 转储对象