在没有numpy的矩阵中打印列

Chu*_*han 2 python arrays matrix

我真的很喜欢编程,所以我很抱歉这是一个非常简单的问题,但我一直试图在矩阵中打印第一列而不使用numpy,但它打印如下:

matrix = \
[[0, 1],
 [3, 7],
 [9, 4],
 [10, 3]]

print matrix[0:3][0]
[0, 1] 
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

print matrix[:][0]
[0, 1]

print matrix[:3]
[[0, 1], [3, 7], [9, 4]]

print matrix[:3][0]
[[0, 1], [3, 7], [9, 4]]
Run Code Online (Sandbox Code Playgroud)

我想要达到的答案是:

print matrix[code]
0, 3, 9, 10
Run Code Online (Sandbox Code Playgroud)

或类似的.

Gar*_*tty 5

你拥有的是一个列表列表 - 所以那里没有列的概念.有两种方法可以做到这一点,一种是(正如Pavel Anossov的答案所示)是使用列表理解.

一种是使用zip()可用于转置迭代的:

>>> list(zip(*matrix))
[(0, 3, 9, 10), (1, 7, 4, 3)]
Run Code Online (Sandbox Code Playgroud)

我在这里列出了一个列表,以便更容易显示输出.注意在2.x中,zip()给出一个列表而不是一个迭代器(尽管可以使用一个惰性版本itertools.izip()).

一般来说,zip()如果您计划使用多个列,我会使用,如果您只需要一个列,则使用列表理解.