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

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() 函数来处理。