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]
,但我知道这不会起作用。
我如何实现这一目标,还是更好地定义我自己的功能以给我这个功能?
答案 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]