Python中的列表切片列表

Python中的列表切片列表,python,list,slice,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] 上面的代码没有给我正确的输出 我想要的是:[[1,2,3],[1,2,3],[1,2,3]。您可以使用列表理解,例如:[x[0:I]代表a中的x] 其中,i是1,2,3等,取决于您需要的元素数量。或者: >>> [a[slice(0,3)] for a in A] [[1, 2, 3], [1,

我需要在python中对列表进行切片

A = [[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]
idx = slice(0,4)
B = A[:][idx]
上面的代码没有给我正确的输出


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

您可以使用列表理解,例如:
[x[0:I]代表a中的x]
其中,
i
是1,2,3等,取决于您需要的元素数量。

或者:

>>> [a[slice(0,3)] for a in A]
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
或:


>>>[list(filter)(lambda x:x很少使用切片对象比使用列表理解更容易阅读,但这不属于此类情况

>>> 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]]

这非常清楚。对于
A
中的每个子列表,请给我前三个元素的列表。

使用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]])
当然,您可以将
numpy.array
转换回
列表

In [4]: A[:,:3].tolist()
Out[4]: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]

使用列表理解

我是编程新手,Python是我的第一语言。只需4到5天就可以开始学习。我刚刚学习了列表和切片,寻找一些示例,我发现了您的问题并尝试解决。如果我的代码正确,请欣赏。 这是我的代码 A=[[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]
打印(A[0][0:3],A[1][0:3],A[1][0:3])

虽然这确实解决了OPs问题,但我怀疑这是他们的目的。为什么?他需要每个列表中的第一个idx元素。@WayneWerner正确,但我更改了idx的含义…而不是切片它是一个原始INTOP定义的
idx=slice(0,4)
,而不是
4
。修复了将idx的名称更改为I的问题。您在哪里看到问题中使用的逻辑?以及为什么
要切片(0,4)
如果每个子列表确实有效,则为您提供三个元素?欢迎使用StackOverflow!虽然这会打印出HuckleberryFinn想要的内容,但他想要它,但没有提及A的索引,使用切片对象作为第二维度。您的第三个参数
print()
中存在错误。
In [4]: A[:,:3].tolist()
Out[4]: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
A = [[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]

print [a[:3] for a in A]