我需要在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]]
答案 0 :(得分:12)
使用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
转换回list
:
In [4]: A[:,:3].tolist()
Out[4]: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
答案 1 :(得分:10)
很少使用切片对象比使用列表理解更容易阅读,这不是其中之一。
>>> 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
中的每个子列表,请提供前四个元素的列表。
答案 2 :(得分:1)
您可以使用列表理解,例如:[x[0:i] for x in A]
根据您需要的元素数量,i
为1,2,3等。
答案 3 :(得分:0)
或者:
>>> [a[slice(0,3)] for a in A]
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
或者:
>>> [list(filter(lambda x: x<=3, a)) for a in A]
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
答案 4 :(得分:0)
A = [[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]
print [a[:3] for a in A]
使用列表理解
答案 5 :(得分:0)
我是编程新手,Python是我的第一语言。只需4到5天即可开始学习。我刚刚了解了List和slicing,并查找了一些示例,发现了您的问题并尝试解决它,如果我的代码正确,请多谢。 这是我的代码 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])