欢迎访问宙启技术站
智能推送

如何使用 Python中的 `zip()` 函数?基础教程加实例

发布时间:2023-07-01 14:05:19

zip() 函数是 Python 内置的一个函数,它可以将多个可迭代对象(例如列表、元组等)中对应位置的元素打包成一个个元组,并返回由这些元组组成的迭代器。

zip() 函数的基本语法如下:

zip(iterable1, iterable2, ...)

其中,iterable1iterable2,... 是要打包的可迭代对象,可以是列表、元组、集合等。

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) 将列表 ab 中对应位置的元素打包成元组,并返回一个迭代器 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) 将列表 abc 中对应位置的元素打包成元组,并返回一个迭代器 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) 将这个列表解压打包的元组,分别得到 ab 两个可迭代对象。然后使用 list() 函数将这两个对象转换为列表,分别得到 [1, 2, 3]['a', 'b', 'c']

**总结:**

通过上面的例子,我们可以看出,zip() 函数可以方便地将多个可迭代对象中相同位置的元素打包成元组,并返回一个迭代器。可以使用 list() 函数将迭代器转换为列表,也可以使用 * 运算符解压打包的元组。使用 zip() 函数可以简化处理多个可迭代对象的代码。