在Python中,如何切片列表以获取第一个元素,以及除最后一个元素之外的所有元素?

时间:2015-04-28 21:59:38

标签: python python-3.x

假设:

a = [1, 2, 3]
b = [4,5]

如何获得:

[1, 2]
[4]

在上面的例子中,我知道这有效:

a[:-1]
b[:-1]

然而,当:

c = [1]
c[:-1]

结果是一个空列表。

2 个答案:

答案 0 :(得分:5)

您需要以下代码片段:

c[:1] + c[1:-1]

例如:

>>> c = [1]
>>> c[:1] + c[1:-1]
[1]

使用c[:1],您将获得一个由第一个元素组成的列表(如果它存在,否则为空列表),以及c[1:-1]从第二个元素到最后一个元素的结尾。如果没有第二个元素c[1:-1]将只返回空列表。

答案 1 :(得分:3)

按照JuniorCompressor的回答,如果要点就是删除最后一个元素(保留第一个,如果存在,其他人也保留它们,但删除last == remove last,如果第一个元素也不是最后一个元素)。是吗?

>>> def removelast(l):
...     if len(l)>1: del l[len(l)-1]
...     return l
>>> a = range(5)
>>> removelast(a)
[0, 1, 2, 3]
>>> b = [1]
>>> removelast(b)
[1]