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