如何使用 Python中的 `zip()` 函数?基础教程加实例
zip() 函数是 Python 内置的一个函数,它可以将多个可迭代对象(例如列表、元组等)中对应位置的元素打包成一个个元组,并返回由这些元组组成的迭代器。
zip() 函数的基本语法如下:
zip(iterable1, iterable2, ...)
其中,iterable1,iterable2,... 是要打包的可迭代对象,可以是列表、元组、集合等。
zip() 函数返回一个迭代器,可以使用 list() 函数将其转换为列表。
下面我们来看一些具体的例子,说明如何使用 zip() 函数。
**例子1:打包两个列表**
a = [1, 2, 3] b = ['a', 'b', 'c'] zipped = zip(a, b) print(list(zipped)) # [(1, 'a'), (2, 'b'), (3, 'c')]
在这个例子中,zip(a, b) 将列表 a 和 b 中对应位置的元素打包成元组,并返回一个迭代器 zipped。然后使用 list() 函数将迭代器转换为列表,得到 [(1, 'a'), (2, 'b'), (3, 'c')]。
**例子2:打包多个列表**
a = [1, 2, 3] b = ['a', 'b', 'c'] c = [True, False, True] zipped = zip(a, b, c) print(list(zipped)) # [(1, 'a', True), (2, 'b', False), (3, 'c', True)]
在这个例子中,zip(a, b, c) 将列表 a、b 和 c 中对应位置的元素打包成元组,并返回一个迭代器 zipped。然后使用 list() 函数将迭代器转换为列表,得到 [(1, 'a', True), (2, 'b', False), (3, 'c', True)]。
**例子3:打包不等长的列表**
a = [1, 2, 3] b = ['a', 'b'] zipped = zip(a, b) print(list(zipped)) # [(1, 'a'), (2, 'b')]
在这个例子中,a 列表中有3个元素,b 列表中只有2个元素。打包时,zip() 函数只会打包两个列表中相同位置的元素,多出来的元素会被忽略。
**例子4:解压打包的元组**
zipped = [(1, 'a'), (2, 'b'), (3, 'c')] a, b = zip(*zipped) print(list(a)) # [1, 2, 3] print(list(b)) # ['a', 'b', 'c']
在这个例子中,zipped 是一个由元组组成的列表。我们使用 zip(*zipped) 将这个列表解压打包的元组,分别得到 a 和 b 两个可迭代对象。然后使用 list() 函数将这两个对象转换为列表,分别得到 [1, 2, 3] 和 ['a', 'b', 'c']。
**总结:**
通过上面的例子,我们可以看出,zip() 函数可以方便地将多个可迭代对象中相同位置的元素打包成元组,并返回一个迭代器。可以使用 list() 函数将迭代器转换为列表,也可以使用 * 运算符解压打包的元组。使用 zip() 函数可以简化处理多个可迭代对象的代码。
