在Python中切片列表

Huc*_*inn 8 python list slice

我需要在python中切片列表.

A = [[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]
idx = slice(0,4)
B = A[:][idx]
Run Code Online (Sandbox Code Playgroud)

上面的代码没有给我正确的输出.

我想要的是: [[1,2,3],[1,2,3],[1,2,3]]

awe*_*oon 13

使用numpy非常简单 - 你可以只执行切片:

In [1]: import numpy as np

In [2]: A = np.array([[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]])

In [3]: A[:,:3]
Out[3]: 
array([[1, 2, 3],
       [1, 2, 3],
       [1, 2, 3]])
Run Code Online (Sandbox Code Playgroud)

当然,你可以转变numpy.arraylist:

In [4]: A[:,:3].tolist()
Out[4]: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
Run Code Online (Sandbox Code Playgroud)


tim*_*geb 11

很少使用切片对象比使用列表解析更容易阅读,这不是这些情况之一.

>>> A = [[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]
>>> [sublist[:3] for sublist in A]
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
Run Code Online (Sandbox Code Playgroud)

这很清楚.对于每个子列表A,请给我前四个元素的列表.