我知道如果我这样做:
>> a = [1,2,3,4]
>> a[:-1]
Output: [1,2,3]
但:
>> a = [1]
>> a[:-1]
Output: []
虽然在这种情况下,第一个是最后一个,反之亦然如果列表长度为1,如何选择最后一项?
你不得不以某种方式处理特殊情况。一种方法是使用max
并避免使用否定索引:
a[:max(1, len(a) - 1)]
您也可以使用短路:
a[:-1] or a[:]
你可以使用简单或三元if-else
:
slc = a[:] if len(a) == 1 else a[:-1]
[-1:]表示给我列表中的最后一个元素。你可以使用or
语句,它会得到你的价值:
ls = [1, 2, 3]
v = ls[-1:] or ls[:]
v
[3]
ls = [1]
v = ls[-1:] or ls[:]
v
[1]
当列表包含一个或多个元素时,这适用于这两种情况。