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函数对象。
