Python列表从索引获取特定长度的元素

时间:2013-08-10 17:33:27

标签: python string list

my_list = [1,2,3,4,5,6,7,8,9,10,11,12,13]

我需要从Python中的特定索引开始,从列表中获取特定长度的元素。例如,我想从上面的[2]元素中获取三个下一个元素。反正有没有从特定索引中获取三个元素?我不会总是知道我想要获得的下一个元素数量,有时我可能想要获得两个元素,有时是八个元素,所以x元素。

我知道我可以my_list[2:]来获取从第三个元素到列表末尾的所有元素。我想要做的是指定在第三个元素之后要读取的元素数量。从概念上讲,上面的例子看起来像my_list[2:+3],但我知道这不会起作用。

我如何实现这一目标,还是更好地定义我自己的功能以给我这个功能?

3 个答案:

答案 0 :(得分:2)

你实际上非常接近:

>>> my_list = [1,2,3,4,5,6,7,8,9,10,11,12,13]
>>> x = 3
>>> my_list[2:2+x]
[3, 4, 5]
>>>

如您所见,您的问题的答案是切片列表。

切片的语法是list[start:stop:step]start是从哪里开始的,stop是在哪里结束,step是值得信赖的(我在答案中没有使用步骤)。

答案 1 :(得分:1)

my_list = [1,2,3,4,5,6,7,8,9,10,11,12,13]
n = 3
print my_list[2:2+n]

这里没什么好看的。但是,您可以将n拉出来并按照您想要的方式进行调整。

答案 2 :(得分:0)

你应该只使用

my_list[2:2+3]

一般

list[ STARTING_INDEX : END_INDEX ]

相当于

list[ STARTING_INDEX : STARTING_INDEX + LENGTH ]




>>> my_list = [1,2,3,4,5,6,7,8,9,10,11,12,13]
>>> my_list[2:3]
[3]
>>> my_list[2:2+3]
[3, 4, 5]