我正在尝试做一些非常简单的事情:我需要从列表中获取最后40个元素。
我注意到没有直接的方法可以这样做,就像你在字符串中所做的那样,使用一个标准函数从字符串中获取最后的n个字符。
我知道如何获得列表的长度;所以我想到的只是使用max lenght并从列表末尾开始执行for循环,然后向后退80次。
max_size= len(my_list)
for i in range(max_size, (maxsize-80)):
print my_list[i]
i=i-1
这是正确的方法吗?或者列表对象中有某种功能可以执行此操作?我尝试了python网站的文档,但没有运气。
答案 0 :(得分:2)
my_list[-40:]
包含最后40个项目。具体来说,负列表索引告诉它从列表末尾开始计算那么多项,然后冒号告诉它继续直到结束。
答案 1 :(得分:1)
for i in my_list[-40:]:
print(i)
答案 2 :(得分:0)
正如已经指出的那样切片是你想要的。你可以,如果你只有一个可迭代的(即你没有长度/只能向前读):
>>> from collections import deque
>>> deque(range(10), 2)
deque([8, 9], maxlen=2)