Мне часто приходится работать с последними n элементами в последовательности, где n может быть равно 0. Проблема в том, что попытка среза с [-n:]
не сработает в случае с n == 0
, поэтому неудобный код специального случая требуется. Например
if len(b):
assert(isAssignableSeq(env, self.stack[-len(b):], b))
newstack = self.stack[:-len(b)] + a
else: #special code required if len=0 since slice[-0:] doesn't do what we want
newstack = self.stack + a
Мой вопрос: -есть ли способ получить такое поведение, не требуя неудобного специального корпуса? Код был бы намного проще, если бы мне не приходилось постоянно проверять 0.