Python 中的 zip() 函数用法示例
发布时间:2023-07-03 02:11:50
Python 中的 zip() 函数是一个非常有用的内建函数,通常用于将两个或更多可迭代对象(如列表、元组等)中的元素逐个配对并返回为一个新的迭代器对象。
zip() 函数的语法为:
zip(iterable1, iterable2, ...)
其中 iterable 可以是列表、元组、集合或其他可迭代对象。
下面是一些常见的使用 zip() 函数的示例:
1. 配对两个列表的元素:
a = [1, 2, 3] b = ['a', 'b', 'c'] c = zip(a, b) print(list(c))
输出结果为:[(1, 'a'), (2, 'b'), (3, 'c')]
2. 配对两个元组的元素:
x = (1, 2, 3)
y = ('a', 'b', 'c')
z = zip(x, y)
print(tuple(z))
输出结果为:((1, 'a'), (2, 'b'), (3, 'c'))
3. 配对列表和元组的元素:
lst = [1, 2, 3]
tpl = ('a', 'b', 'c')
result = zip(lst, tpl)
for item in result:
print(item)
输出结果为:
(1, 'a')
(2, 'b')
(3, 'c')
4. 配对多个列表的元素:
a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
result = zip(a, b, c)
for item in result:
print(item)
输出结果为:
(1, 4, 7)
(2, 5, 8)
(3, 6, 9)
5. 使用 * 运算符解压缩 zip() 函数的返回结果:
a = [1, 2, 3] b = ['a', 'b', 'c'] result = zip(a, b) lst1, lst2 = zip(*result) print(lst1) print(lst2)
输出结果为:
(1, 2, 3)
('a', 'b', 'c')
6. 当可迭代对象的长度不同时,使用 zip_longest() 函数:
from itertools import zip_longest
a = [1, 2, 3]
b = ['a', 'b']
result = zip_longest(a, b, fillvalue=0)
for item in result:
print(item)
输出结果为:
(1, 'a')
(2, 'b')
(3, 0)
可以看到,在第二个可迭代对象长度较短的情况下,zip_longest() 函数使用 fillvalue 参数指定了一个默认值填充。
总结起来,zip() 函数在 Python 中经常用于将多个可迭代对象的元素一一对应配对。在实际应用中,我们可以利用 zip() 函数来同时遍历多个列表、元组或其他可迭代对象的元素,从而简化代码,提高效率。值得注意的是,当可迭代对象的长度不同时,可以使用 zip_longest() 函数来处理。
