Python zip()实现结构化

  • Post category:Python

Python zip() 函数

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。即将多个列表中的同一位置的元素组合在一起。

语法

zip(iterator1, iterator2, iterator3 ...)

参数

  • iterator1 — 可迭代对象

  • iterator2 — 可迭代对象

  • iterator3 — 可迭代对象

    返回一个对象,其中包含各个迭代器的并行组合的元组。

示例1

a = [1, 2, 3]
b = [4, 5, 6]
result = zip(a, b)
print(list(result))

输出结果:

[(1, 4), (2, 5), (3, 6)]

在这个示例中,我们使用了两个列表a和b,并将它们作为参数传递给zip()函数。函数返回一个由元组组成的列表,其中每个元组由a和b在相应位置上的元素组成。

示例2

name = ['Tom', 'Jerry', 'Spike']
age = [25, 28, 22]
sex = ['male', 'male', 'female']
for n, a, s in zip(name, age, sex):
    print(n, a, s)

输出结果:

Tom 25 male
Jerry 28 male
Spike 22 female

在这个示例中,我们使用了三个列表name、age和sex,并通过循环迭代它们。zip()函数将这三个列表中在相应位置上的元素组合成一个元组,并将它们作为循环变量n、a和s的值。

代码

以下代码演示了zip()函数的更多用法:

nums = [1, 2, 3]
letters = ['a', 'b', 'c']
words = ['dog', 'egg', 'fish']
result1 = zip(nums, letters, words)
print(list(result1)) # [(1, 'a', 'dog'), (2, 'b', 'egg'), (3, 'c', 'fish')]

result2 = zip(nums, letters)
print(list(result2)) # [(1, 'a'), (2, 'b'), (3, 'c')]

result3 = zip(nums, words)
print(list(result3)) # [(1, 'dog'), (2, 'egg'), (3, 'fish')]

result4 = zip('hello', 'world')
print(list(result4)) # [('h', 'w'), ('e', 'o'), ('l', 'r'), ('l', 'l'), ('o', 'd')]

result5 = zip([1, 2, 3], [4, 5], [6, 7, 8, 9])
print(list(result5)) # [(1, 4, 6), (2, 5, 7)]

在这个示例中,我们使用了五个不同的对象来演示zip()函数的应用场景,并分别输出了它们的结果。可以看到,zip()函数灵活性大,可以处理不同长度和类型的对象。