0

我正在尝试做一些非常简单的事情:我需要从列表中获取最后 40 个元素。

我注意到没有直接的方法可以做到这一点,就像您在字符串中所做的那样,使用标准函数之一从字符串中获取最后 n 个字符。

我知道如何获取列表的长度;所以我想到的是只使用最大长度并从列表末尾开始执行一个 for 循环,然后倒退 80 次。

max_size= len(my_list)

for i in range(max_size, (maxsize-80)):
    print my_list[i]
    i=i-1

这是正确的方法吗?或者列表对象中有某种功能可以做到这一点?我尝试了 python 站点的文档,但没有运气。

4

3 回答 3

2

my_list[-40:]包含最后 40 个项目。具体来说,负列表索引告诉它从列表末尾开始计算许多项目,然后冒号告诉它继续直到结束。

于 2013-02-20T00:54:47.837 回答
1
for i in my_list[-40:]:
    print(i)
于 2013-02-20T00:54:40.800 回答
0

正如已经指出的那样,切片是您想要的。如果你只有一个可迭代的(即,你没有长度/只能向前阅读),你可以:

>>> from collections import deque
>>> deque(range(10), 2)
deque([8, 9], maxlen=2)
于 2013-02-20T01:09:58.410 回答