欢迎访问宙启技术站
智能推送

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函数,将能够让我们更高效、更简洁地编写代码。