有一个二维列表,如果需要遍历每一行,相信大家都会:
matrix = [[1,2,3], [4,5,6], [7,8,9]]
for row in matrix:
print(row)
如果要每次取一列,如果借助numpy的话,我们可以这样:
import numpy as np
matrix = np.array(matrix)
matrix[:, 0]
for i in range(col):
print(matrix[:, i])
要是想直接用python的列表做的话,这样的语法是不对的,这个时候就需要使用zip和*语法了:
matrix = [[1,2,3], [4,5,6], [7,8,9]]
cols = list(zip(*matrix))
print(cols)
'''
Out[17]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
'''
需要注意的是,在python3中,使用zip函数时zip返回的是一个对象,因此要使用他的时候最好在前面加一个list方法将其转换为列表。