Я хочу, чтобы пройти список в определенном расположении ломтиков:Арифметика в Python нарезка, конец поведение
l = range(10)
for i in (0,1,2):
print l[i:i + 3]
# [0, 1, 2]
# [1, 2, 3]
# [2, 3, 4]
Однако, когда я пытаюсь сделать это с окончанием списка, случай, когда i = 0
терпит неудачу
l = range(10)
for i in (0,1,2):
print l[-(i + 3):-i]
# [] // expected: [7, 8, 9]
# [6, 7, 8]
# [5, 6, 7]
Я понимаю, почему это не работает.
l[-1:]
l[-1:None]
оба работают, но
l[-1:0]
получает пустой набор из-за 0
ссылающийся на первый элемент, а не «элемент после последнего элемента».
Однако мне интересно, есть ли решение для реализации простой «итерации от x до конца», где end
не нужно обрабатывать специально, если я действительно дойду до конца.
Примеры, приведенные выше, являются просто примерами, я пытаюсь присвоить значения в NumPy, так что l[...].reverse()
и т. Д. Не будет работать.
Ваш вопрос будет более понятно, если добавить ожидаемой выходной – Kasramvd
Спасибо за подсказку, я добавил вывод –