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

zip函数在Python中的使用方法

发布时间:2023-06-06 17:56:51

在Python中,zip()函数是一种内置的函数,它可以将多个列表、元组或其他序列类型对象压缩为一个元组,并返回一个由这些元组组成的列表。每个元组包含在输入序列中相应位置上的元素。zip()函数不会改变原始序列。

zip()函数的语法如下:

zip(iter1[, iter2[, ...]])

其中,iter1、iter2、... 是需要压缩的序列。这些序列可以是列表、元组或其他序列类型对象。

当传入多个序列时,zip()函数会将它们按照最短的序列长度进行压 缩,多余的元素会被舍弃。

下面是一些实例,可以更好地理解zip()函数的使用方法。

实例一:

a = [1, 2, 3]
b = ['a', 'b', 'c']

result = zip(a, b)

print(list(result))

运行结果为:

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

在这个例子中,我们定义了两个列表 a 和 b,在使用 zip() 函数之后,使用 list() 函数将返回值转化为了列表类型。最终得到的结果是一个由元组构成的列表,其中每个元组由 a 和 b 中相应位置的元素组成。

实例二:

a = [1, 2, 3, 4, 5]
b = ['a', 'b', 'c']

result = zip(a, b)

print(list(result))

运行结果为:

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

在这个例子中,由于 a 列表的长度为 5,而 b 列表的长度为 3,当使用 zip() 函数时,只有前 3 对元素会被压缩成元组,并返回一个由这些元组组成的列表。

zip()函数也可以用于非常有用的操作,例如转置矩阵。

实例三:

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

result = zip(*matrix)

print(list(result))

运行结果为:

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

在这个例子中,我们定义了一个矩阵 matrix,使用 * 运算符将其打散为两个列表,分别为 [1,2,3]、[4,5,6] 和 [7,8,9],然后调用 zip() 函数将这三个列表进行压缩。

由于 zip() 函数压缩时是按照最短的序列长度进行压缩,因此在这里,zip() 函数会将 matrix 的第 1 列、第 2 列和第 3 列分别压缩成元组,并返回一个由这些元组组成的列表,即 [(1,4,7),(2,5,8),(3,6,9)],得到的结果就是矩阵的转置。

总结:

zip()函数在Python中是一种非常实用的功能函数,它可以将多个序列对象压缩为一个元组,并返回一个由这些元组组成的列表。在使用 zip() 函数时,应该注意输入序列的长度应该相同,这样才可以得到正确的结果。Zip() 函数还可以用于一些其他操作,例如转置矩阵等。