当我们谈到 Python 中的 zip() 函数时,它是一个非常有用的函数,可以用于同时迭代多个可迭代对象(如列表、元组等)。
基本用法:
zip() 函数接受任意数量的可迭代对象作为参数,并返回一个元组的迭代器,其中每个元组包含来自每个可迭代对象的元素。
a = [1, 2, 3]
b = ['a', 'b', 'c']
zipped = zip(a, b)
print(list(zipped)) # 输出:[(1, 'a'), (2, 'b'), (3, 'c')]
在这个例子中,zip() 函数将列表 a 和 b 中的元素一一对应地打包在一起并返回一个迭代器。
处理不等长的可迭代对象:
当传递给zip() 的可迭代对象长度不同时,zip() 函数会以最短的可迭代对象为准。
a = [1, 2, 3, 4]
b = ['a', 'b', 'c']
zipped = zip(a, b)
print(list(zipped)) # 输出:[(1, 'a'), (2, 'b'), (3, 'c')]
在这个例子中,zip() 函数根据最短的可迭代对象 b 的长度对可迭代对象 a 进行了截断,并返回了一个新的迭代器。
解压缩:
使用 zip() 函数将多个列表解压缩为单独的列表。
a = (1, 2, 3)
b = ('a', 'b', 'c')
zipped = zip(a, b)
unzipped = list(zip(*zipped))
print(unzipped) # 输出:[(1, 2, 3), ('a', 'b', 'c')]
在这个例子中,首先使用 zip() 函数将列表 a 和 b 打包在一起,然后使用 * 解压缩成两个列表。
与迭代器一起使用:
zip() 函数返回一个迭代器,因此可以与 for 循环一起使用。
a = [1, 2, 3]
b = ['a', 'b', 'c']
for num, letter in zip(a, b):
print(f'数字:{num},字母:{letter}')
在这个例子中,我们使用zip() 遍历了两个列表,并将它们打印出来。
使用:
通过使用 zip() 函数,您可以方便地处理多个列表或其他可迭代对象,并且可以有效地减少了代码量。