从 python 列表中排除可变长度后缀,该后缀可能为零

问题描述 投票:0回答:1

我经常有机会从 Python 列表中删除最后一个

n
元素,其中
n
由程序的其他部分设置,有时可能等于 0。如果我这样做

shortened_list = full_list[:-n]

那么这在

n>0
时有效,但如果
n==0
则返回空列表,而我希望它返回完整列表。最后我不得不写

shortened_list = full_list if n==0 else full_list[:-n]

有没有更紧凑的方式?这是代码长度的相对较小的增加,但它确实出现了很多,而且经常发生的情况是我以错误的方式编码它,如上面的第一行,然后只有在进行一些调试之后,我才将其追溯到这个错误并将其更正为上面第二行。

python
1个回答
0
投票

据我所知,没有内置的方法可以做到这一点,但你可以编写一个函数:

def get_last_n(full_list, n):
    return full_list if n==0 else full_list[:-n]

然后在代码中使用它,如下所示:

shortened_list = get_last_n(full_list, n)

这并没有那么短,但至少降低了拼写错误的可能性。

© www.soinside.com 2019 - 2024. All rights reserved.