在Python中,zip()是一个内建函数,用于将多个可迭代对象(例如列表、元组等)打包成一个元组的迭代器。它以最短的可迭代对象作为基准,返回一个包含元组的迭代器,每个元组由输入的可迭代对象的元素组成。
zip()函数的语法如下:
zip(*iterables)
其中,*iterables表示一个或多个可迭代对象。
以下是zip()函数的一些常见用法:
- 合并多个列表/元组:将多个列表或元组中相同索引位置的元素组合成一个元组。如果可迭代对象的长度不一致,zip()函数会以最短的可迭代对象的长度为准。
list1 = [1, 2, 3] list2 = ['a', 'b', 'c'] result = zip(list1, list2) print(list(result)) # [(1, 'a'), (2, 'b'), (3, 'c')]
- 遍历多个可迭代对象:可以在for循环中同时遍历多个可迭代对象,将相同索引位置的元素组合起来使用。
list1 = [1, 2, 3] list2 = ['a', 'b', 'c'] for x, y in zip(list1, list2): print(x, y) # 输出: # 1 a # 2 b # 3 c
- 转置矩阵:可以用zip()函数将矩阵的行转置为列。
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] transposed_matrix = list(zip(*matrix)) print(transposed_matrix) # 输出: # [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
需要注意的是,zip()函数返回的是一个迭代器,需要使用list()函数将其转换为列表进行展示。