Срез крышки Python отрицательно связан в концах списка

#python #python-3.x

Вопрос:

Я хочу распечатать часть списка, вырезанную из его середины

 def region_around(lst, index):
    return lst[index-3:index 3]

lst = [i for i in range(10)]
print(region_around(lst, 5)) # correctly prints [2, 3, 4, 5, 6, 7]

print(region_around(lst, 0)) # incorrectly prints []
 

Во втором случае region_around(lst, 0) , я хочу [0, 1, 2] , чтобы срез был сделан только с положительной частью lst[:3]

Как я могу ограничить кусочек, как я хочу?

Ответ №1:

Я вспомнил, что терминология была «зажим», и поиск показал мне, что, конечно, я могу просто сделать

 def region_around(lst, index):
    return lst[max(0, index-3):index 3]
 

Комментарии:

1. я был слишком быстр ,милый