当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python zip()用法及代码示例


在本教程中,我们将借助示例了解 Python zip() 函数。

zip() 函数采用可迭代对象(可以是零个或多个),将它们聚合到一个元组中,然后返回它。

示例

languages = ['Java', 'Python', 'JavaScript']
versions = [14, 3, 6]

result = zip(languages, versions)
print(list(result))

# Output: [('Java', 14), ('Python', 3), ('JavaScript', 6)]

用法:

用法:

zip(*iterables)

参数:

范围 说明
iterables 可以是内置的可迭代对象(例如:列表、字符串、字典)或用户定义的可迭代对象

返回:

zip() 函数返回基于可迭代对象的元组迭代器。

  • 如果我们不传递任何参数,zip() 返回一个空的迭代器
  • 如果传递了一个可迭代对象,zip() 返回一个元组迭代器,每个元组只有一个元素。
  • 如果传递了多个迭代,zip()返回一个元组的迭代器,每个元组都有来自所有可迭代对象的元素。

    假设,两个迭代被传递给zip();一个包含三个元素的迭代,另一个包含五个元素。然后,返回的迭代器将包含三个元组。这是因为迭代器在最短的迭代用完时停止。

示例 1:Python zip()

number_list = [1, 2, 3]
str_list = ['one', 'two', 'three']

# 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, str_list)

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

输出

[]
{(2, 'two'), (3, 'three'), (1, 'one')}

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

numbersList = [1, 2, 3]
str_list = ['one', 'two']
numbers_tuple = ('ONE', 'TWO', 'THREE', 'FOUR')

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

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

result = zip(numbersList, str_list, numbers_tuple)

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

输出

{(2, 'TWO'), (3, 'THREE'), (1, 'ONE')}
{(2, 'two', 'TWO'), (1, 'one', 'ONE')}

*运算符可以与zip()解压缩列表。

zip(*zippedList)

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

coordinate = ['x', 'y', 'z']
value = [3, 4, 5]

result = zip(coordinate, value)
result_list = list(result)
print(result_list)

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

输出

[('x', 3), ('y', 4), ('z', 5)]
c = ('x', 'y', 'z')
v = (3, 4, 5)

相关用法


注:本文由纯净天空筛选整理自 Python zip()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。