Skip to main content
 首页 » 编程设计

python之如何进行二维切片

2025年05月04日23lyj

我正在尝试做我认为应该很简单的事情:

我制作了一个二维列表:

a = [[1,5],[2,6],[3,7]] 

我想滑出第一个 column 并尝试:

1)

a[:,0] 
... 
TypeError: list indices must be integers or slices, not tuple 

2)

a[:,0:1] 
... 
TypeError: list indices must be integers or slices, not tuple 

3)

a[:][0] 
[1, 5] 

4)

a[0][:] 
[1, 5] 

5) 明白了,但这是这样做的方法吗?

 aa[0] for aa in a 

使用 numpy 会很容易,但是 Python 的方式是什么?

请您参考如下方法:

a[:, 0] 之类的二维切片仅适用于 NumPy 数组,不适用于列表。

不过,您可以使用 zip(*a) 转置(行变为列,反之亦然)嵌套列表。转置后,只需切出第一行:

a = [[1,5],[2,6],[3,7]] 
print zip(*a)           # [(1, 2, 3), (5, 6, 7)] 
print list(zip(*a)[0])  #  [1, 2, 3]