zip函数在Python中的使用方法
在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() 函数还可以用于一些其他操作,例如转置矩阵等。
