Python中zip函数的常见用途是什么

2023-03-31 00:00:00 函数 用途 常见

zip()函数是Python中一个非常有用的函数,它可以将多个列表、元组或其他可迭代对象中对应位置的元素合并成元组的列表。下面是一些zip()函数的常见用途:

合并多个列表
使用zip()函数可以将多个列表合并成一个列表,每个元素都是一个元组,其中包含了来自每个列表相同位置的元素。例如:

list1 = [1, 2, 3]
list2 = ['pidancode.com', '皮蛋编程', 'hello']
merged_list = list(zip(list1, list2))
print(merged_list)  # [(1, 'pidancode.com'), (2, '皮蛋编程'), (3, 'hello')]

解压元组列表
使用zip()函数还可以将元组列表解压成多个列表,每个列表包含来自元组列表相同位置的元素。例如:

merged_list = [(1, 'pidancode.com'), (2, '皮蛋编程'), (3, 'hello')]
list1, list2 = zip(*merged_list)
print(list1)  # (1, 2, 3)
print(list2)  # ('pidancode.com', '皮蛋编程', 'hello')

遍历多个可迭代对象
使用zip()函数可以同时遍历多个可迭代对象,例如:

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
    print(name, 'is', age, 'years old')

输出:

Alice is 25 years old
Bob is 30 years old
Charlie is 35 years old

转置二维列表
使用zip()函数可以轻松地转置二维列表,例如:

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
transposed = list(zip(*matrix))
print(transposed)  # [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

在以上示例中,zip(*matrix)将矩阵的每一列作为一个可迭代对象,然后使用list()函数将其转换为一个列表。

如果需要使用字符串,可以在上述示例中将整数替换为字符串,例如:

list1 = ['pidancode.com', '皮蛋编程', 'hello']
list2 = ['world', 'pidancode.com', '皮蛋编程']
merged_list = list(zip(list1, list2))
print(merged_list)  # [('pidancode.com', 'world'), ('皮蛋编程', 'pidancode.com'), ('hello', '皮蛋编程')]

list1, list2 = zip(*merged_list)
print(list1)  # ('pidancode.com', '皮蛋编程', 'hello')
print(list2)  # ('world', 'pidancode.com', '皮蛋编程')

相关文章