介绍
在 Python 教程的这一章中,我们将讨论美妙且极其有用的功能“zip”。不幸的是,Python 的初学者经常被 zip 不必要地混淆和害怕。首先这个名字很混乱。许多人将 Python 的 zip 与众所周知的存档文件格式 ZIP 混淆,后者用于无损数据压缩。由于这种数据压缩不仅使所需的存储空间非常小,而且执行速度也非常快,因此选择了名称“zip”。在这种情况下,“zip”的意思是“迅速行动或迅速行动”。
Python 的“zip”与它完全无关。Python 中的 'zip' 功能基于英文单词 'zip' 的另一个含义,“用拉链关闭某物”。
我们将看到 zip 非常容易理解。但是,如果您想出使用 Python 帮助功能的想法,这将不适用。帮助文本肯定对此负有部分责任,并吓跑了新手:
Return a zip object whose .next() method returns a tuple where the i-th element comes from the i-th iterable argument. The .next() method continues until the shortest iterable in the argument sequence is exhausted and then it raises StopIteration.
这段文字是正确的,但很难理解。在我们尝试简化 zip 背后的理论之前,让我们从简单的例子开始。
我们将从两个列表开始并将 zip 应用到这两个列表:
a_couple_of_letters = [ "a" , "b" , "c" , "d" , "e" , "f" ]
some_numbers = [ 5 , 3 , 7 , 9 , 11 , 2 ]
print ( zip ( a_couple_of_letters , some_numbers ) )
输出:
<zip 对象位于 0x7efc8724f9b0>
结果是一个 zip 对象,如果您不了解 zip,那么您并不比以前更聪明。zip 的应用程序返回一个迭代器,它能够生成元组。它将每个可迭代对象(在我们的示例列表中)的第一项组合成一个元组,然后再组合第二项,依此类推。当其中之一用完时它会停止,即没有更多可用的项目。
查看它创建的内容的最佳方法是在 for 循环中使用它。
对于 t in zip ( a_couple_of_letters , some_numbers ):
打印( t )
输出: