我真的是编程新手,所以如果这是一个非常简单的问题,我深表歉意,但我一直在尝试在不使用 numpy 的情况下打印矩阵中的第一列,但它打印如下:
matrix = \
[[0, 1],
[3, 7],
[9, 4],
[10, 3]]
print matrix[0:3][0]
[0, 1]
我也试过:
print matrix[:][0]
[0, 1]
print matrix[:3]
[[0, 1], [3, 7], [9, 4]]
print matrix[:3][0]
[[0, 1], [3, 7], [9, 4]]
我想要得到的答案是:
print matrix[code]
0, 3, 9, 10
或类似的。
最佳答案
您拥有的是列表的列表 - 因此那里没有列的概念。有两种方法可以做到这一点,一种是(如 Pavel Anossov's answer 所示)使用列表理解。
一种是使用zip()
可用于转置可迭代对象:
>>> list(zip(*matrix))
[(0, 3, 9, 10), (1, 7, 4, 3)]
我在这里列出了它,以便更容易显示输出。注意在 2.x 中,zip()
给出一个列表而不是一个迭代器(虽然惰性版本可用 itertools.izip()
)。
通常,如果您计划使用多个列,我会使用 zip()
,如果您只需要一个列,我会使用列表理解。
关于python - 在没有numpy的情况下打印矩阵中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15937945/