0
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]但是我知道这行不通。

我怎样才能做到这一点,或者定义我自己的功能来给我这个功能更好?

4

3 回答 3

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是计算的依据(我的答案中没有使用 step )。

于 2013-08-10T17:37:06.473 回答
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按照自己的方式拉出并调整它。

于 2013-08-10T17:41:49.867 回答
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]
于 2013-08-10T17:36:50.367 回答