Python - 如何从列表中提取最后x个元素

80 投票
4 回答
137069 浏览
提问于 2025-04-17 08:36

如果一个Python列表的长度超过了某个值(比如说10),我想把这个列表最后的10个元素提取出来,放到一个新的列表里。 我该怎么做呢? 我试着计算列表长度减去10,然后用这个值来创建新列表,比如用这样的方式:new_list = [(len(my_list) - 10):],但这样不行。

有没有什么建议? 提前谢谢!

4 个回答

16

Python教程里有一部分讲解了如何使用列表切片,你可以在这里查看: http://docs.python.org/tutorial/introduction.html#lists

在你的情况下,写起来非常简单:

 new_list = my_list[-10:]
25

这段话讲的是如何把一个很长的列表切分成最大指定大小的多个小列表,把剩下的部分放到一个新的列表里。虽然这不是你问的具体内容,但可能正是你想要的结果:

>>> list1 = [10, 20, 30, 40, 50, 60, 70]
>>> max_size = 5
>>> list2 = list1[max_size:]
>>> list2
[60, 70]
>>> list1 = list1[:max_size]
>>> list1
[10, 20, 30, 40, 50]

这段代码更接近你问的内容,基本上是一样的,不过是从最后面取出新的列表:

>>> list1 = [10, 20, 30, 40, 50, 60, 70]
>>> list2 = list1[:max_size]
>>> list2
[10, 20, 30, 40, 50]
>>> list2 = list1[-max_size:]
>>> list2
[30, 40, 50, 60, 70]
>>> list1 = list1[:-max_size]
>>> list1
[10, 20]
>>> 
147

这其实非常简单:

my_list[-10:]

补充说明: (来自评论区)

如果最开始的列表少于10个元素,这个方法依然有效,会返回整个列表。比如,如果 my_list = [1,2,3],那么 my_list[-10:] 的结果就是 [1,2,3]

撰写回答