Tutorial Study Image

Python zip()

内置函数 zip() 通过聚合给定的可迭代对象返回一个元组或一个压缩对象,它可能包含零个或多个可迭代对象作为其参数。


zip(*iterables) #where iterable may be list, string, dict etc
 

zip() 参数

它可能接受一个或多个迭代器作为其参数。* 运算符可以与 zip() 结合使用来解压列表。

参数 描述 必需/可选
可迭代对象 可以是内置可迭代对象(如:列表、字符串、字典),也可以是用户定义的可迭代对象 必需

zip() 返回值

如果 zip() 没有参数,则结果将是一个包含空迭代器的压缩变量。

输入 返回值
单个可迭代对象 包含单个元素的元组
多个可迭代对象 包含所有可迭代对象元素的元组

Python 中 zip() 方法的示例

示例 1:zip() 在 Python 中如何工作


number_list = [5, 6, 7]
string_list = ['five', 'six', 'seven']

# No iterables are passed
result = zip()

# Converting iterator to list
result_list = list(result)
print(result_list)

# Two iterables are passed
result = zip(number_list, string_list)

# Converting iterator to set
result_set = set(result)
print(result_set)
 

输出

[]
{(7, 'seven'), (6, 'six'), (5, 'five')}

示例 2:不同数量的可迭代元素


numbers_List = [5, 6, 7]
string_list = ['five', 'six']
numbers_tuple = ('FIVE', 'SIX', 'SEVEN', 'EIGHT')

# Notice, the size of numbersList and numbers_tuple is different
result = zip(numbers_List, numbers_tuple)

# Converting to set
result_set = set(result)
print(result_set)

result = zip(numbers_List, string_list, numbers_tuple)

# Converting to set
result_set = set(result)
print(result_set)
 

输出

{(7, 'SEVEN'), (6, 'SIX'), (5, 'FIVE')}
{(6, 'six', 'SIX'), (5, 'five', 'FIVE')}

示例 3:如何使用 zip() 解压值


coordinates = ['x', 'y', 'z']
values = [1, 2, 3]

result = zip(coordinates, values)
result_list = list(result)
print(result_list)

c, v =  zip(*result_list)
print('c =', c)
print('v =', v)
 

输出

[('x', 1), ('y', 2), ('z', 3)]
c = ('x', 'y', 'z')
v = (1, 2, 3)