我需要在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.array为list:
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,请给我前四个元素的列表.