我经常有机会从 Python 列表中删除最后一个
n
元素,其中 n
由程序的其他部分设置,有时可能等于 0。如果我这样做
shortened_list = full_list[:-n]
那么这在
n>0
时有效,但如果 n==0
则返回空列表,而我希望它返回完整列表。最后我不得不写
shortened_list = full_list if n==0 else full_list[:-n]
有没有更紧凑的方式?这是代码长度的相对较小的增加,但它确实出现了很多,而且经常发生的情况是我以错误的方式编码它,如上面的第一行,然后只有在进行一些调试之后,我才将其追溯到这个错误并将其更正为上面第二行。
据我所知,没有内置的方法可以做到这一点,但你可以编写一个函数:
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)
这并没有那么短,但至少降低了拼写错误的可能性。