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

Python zip()函数用法解析及示例

发布时间:2023-05-22 18:58:53

Python中的zip函数可以将多个可迭代对象并行组合成一个元组序列。

语法如下:

zip(*iterables)

其中,*iterables表示可迭代对象序列,可以是多个,也可以是一个列表、元组等。zip函数返回一个zip对象,该对象是一个迭代器,可以用list和for循环等方式进行展示。

示例一:并行迭代两个列表,并将其组合成字典。

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]

dict1 = dict(zip(list1, list2))
print(dict1)

输出结果为:

{'a': 1, 'b': 2, 'c': 3}

在本例中,通过zip将两个列表并行迭代,并组合成元组序列,dict函数将该序列转化为字典。

示例二:并行迭代多个列表

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
list3 = ['A', 'B', 'C']

for i in zip(list1, list2, list3):
    print(i)

输出结果为:

('a', 1, 'A')
('b', 2, 'B')
('c', 3, 'C')

在本例中,通过zip将三个列表并行迭代成元组序列,for循环输出每个元组。

示例三:解压元组序列

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]

zip1 = zip(list1, list2)
print(*zip1)

输出结果为:

('a', 1) ('b', 2) ('c', 3)

在本例中,通过zip将两个列表并行迭代,并组合成元组序列,*操作符将元组序列解压展示。值得注意的是,zip对象只能迭代一次,此处zip1迭代后已被消耗,不能重复迭代。

示例四:长度不等的可迭代对象

list1 = ['a', 'b', 'c']
tuple1 = (1, 2)

for i in zip(list1, tuple1):
    print(i)

输出结果为:

('a', 1)
('b', 2)

在本例中,由于tuple1只有两个元素,而list1有三个元素,zip函数只迭代两次,即可组成两个元组序列,最后输出。

通过四个示例,我们可以看到zip函数的应用非常灵活,可以用于多种并行迭代场景。值得注意的是,zip函数返回的是迭代器,如果遍历完zip对象,想要再次遍历,需要重新创建zip函数对象。