Python中zip()函数的解释和可视化(实例详解)

1. zip()函数的定义

在Python中,zip()函数是一个非常强大的函数,可以将多个序列压缩在一起,然后返回“元组”的列表。

它的定义非常简单,格式如下:

zip(*iterables)

该函数将按照每个序列的相应元素进行联接,并返回结果“元组”列表。例如:

a = [1, 2, 3]

b = [4, 5, 6]

c = [7, 8, 9]

d = list(zip(a, b, c))

print(d)

输出结果为:

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

在本例中,zip()函数将三个数组一一匹配,并返回一个包含三个元组的列表,每个元组包含来自三个序列的一个元素。

如果提供给zip()函数的序列长度不一致,则它将停止产生更多的元素。

2. zip()函数的应用

zip()的主要应用是将两个或多个序列合并在一起作为输入进行迭代,通常在for循环中使用。

2.1 迭代两个序列

在此示例中,zip()函数已用于将两个数组合并为一个单独的数组,并使用循环迭代以将其打印出来:

days = ['Monday', 'Tuesday', 'Wednesday']

fruits = ['banana', 'orange', 'peach']

for day, fruit in zip(days, fruits):

print(day + ':', fruit)

输出结果为:

Monday: banana

Tuesday: orange

Wednesday: peach

在此示例中,将days和fruits两个数组进行压缩。在每个循环迭代中,都将day变量设置为days数组中的当前元素,将fruit变量设置为fruits数组中的当前元素。这两个变量的值随着循环的每次迭代而更新。

2.2 解压缩序列

在此示例中,zip()函数已用于将三个数组合并为一个单独的数组,并使用解压缩来将其分离为三个不同的数组。

data = [('a', 1), ('b', 2), ('c', 3)]

letters, numbers = zip(*data)

print(letters)

print(numbers)

输出结果为:

('a', 'b', 'c')

(1, 2, 3)

在此示例中,可以将zip(*)用于解压缩数组。在zip()函数之前添加星号(*)表示使用可变数量的输入参数,例如:

zip(*[iterable]*n)

zip(iterable1, iterable2, ..., iterablen)

完全相同,其中iterable表示可迭代对象,n表示要zip的元素数量。使用星号(*)时,它将解压缩数组并提供zip()所需的每个参数。

2.3 高效的并行迭代

当数据位于不同的数据结构中时,zip()函数可以非常有效地进行并行迭代。例如,可以使用zip()在一个循环中迭代多个列表:

names = ['Steve', 'Bill', 'Jeff']

ages = [54, 66, 59]

companies = ['Apple', 'Microsoft', "Amazon"]

for name, age, company in zip(names, ages, companies):

print(name + ' (' + company + ') is ' + str(age) + ' years old.')

输出结果为:

Steve (Apple) is 54 years old.

Bill (Microsoft) is 66 years old.

Jeff (Amazon) is 59 years old.

在此示例中,将names、ages和companies列表压缩在一起,并用name、age和company变量进行迭代来输出每个人的详细信息。这可用于将数据从不同的表中提取并进行合并。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签