zip函数
发布时间:2023-06-05 10:18:05
zip函数是Python中非常强大的内置函数之一,可用于将多个可迭代对象合并成一个元组列表。zip函数的语法形式如下:
zip(*iterables)
iterables 参数可以是多个可迭代对象,例如列表、元组、集合、字典等。zip 函数返回一个元组构成的迭代器,每个元组包含来自每个可迭代对象的元素。在可迭代对象的长度不同时,zip 函数会按照最短的可迭代对象的长度来进行合并。
下面是一些常见的用例示范:
例 1:将两个列表中的元素依次合并
list1 = [1, 2, 3, 4, 5] list2 = ['a', 'b', 'c', 'd', 'e'] zipped = zip(list1, list2) print(list(zipped)) # 输出结果为:[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]
例 2:如果可迭代对象的长度不同,则以最短对象为准
list1 = [1, 2, 3, 4, 5] list2 = ['a', 'b', 'c'] zipped = zip(list1, list2) print(list(zipped)) # 输出结果为:[(1, 'a'), (2, 'b'), (3, 'c')]
例 3:使用字典的键和值组成元素列表
my_dict = {'name': 'Alice', 'age': 21, 'gender': 'female'}
zipped = zip(my_dict.keys(), my_dict.values())
print(list(zipped))
# 输出结果为:[('name', 'Alice'), ('age', 21), ('gender', 'female')]
zip函数除了常规的列表、元组、字典等外,也可以用于其他可迭代对象,例如文件对象、生成器等,下面通过一个简单的例子展示了如何使用zip函数从两个文件中提取相同行号的行:
with open('file1.txt') as f1, open('file2.txt') as f2:
for line1, line2 in zip(f1, f2):
line1 = line1.strip()
line2 = line2.strip()
if line1 == line2:
print(line1)
总结来说,zip函数是Python中非常实用的一个函数,特别适用于多个可迭代对象的合并操作,通过使用zip函数,将能够让我们更高效、更简洁地编写代码。
