Создание среза
Чтобы создать срез списка, следует задать индексы первого и последнего элементов, с которыми вы намереваетесь работать. Как и в случае с функцией range(), Python останавливается на элементе, предшествующем второму индексу. Скажем, чтобы вывести первые три элемента списка, запросите индексы с 0 по 3, и вы получите элементы 0, 1 и 2.
В следующем примере используется список игроков команды:
players.py
players = ['charles', 'martina', 'michael', 'florence', 'eli']
(1) print(players[0:3])
В точке (1) выводится срез списка, включающий только первых трех игроков. Вывод сохраняет структуру списка, но включает только первых трех игроков:
['charles', 'martina', 'michael']
Подмножество может включать любую часть списка. Например, чтобы ограничиться вторым, третьим и четвертым элементами списка, срез начинается с индекса 1 и заканчивается на индексе 4:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[1:4])
На этот раз срез начинается с элемента 'martina' и заканчивается элементом 'florence':
['martina', 'michael', 'florence']
Если первый индекс среза не указан, то Python автоматически начинает срез от начала списка:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:4])
Без начального индекса Python берет элементы от начала списка:
['charles', 'martina', 'michael', 'florence']
Аналогичный синтаксис работает и для срезов, включающих конец списка. Например, если вам нужны все элементы с третьего до последнего, начните с индекса 2 и не указывайте второй индекс:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[2:])
Python возвращает все элементы с третьего до конца списка:
['michael', 'florence', 'eli']
Этот синтаксис позволяет вывести все элементы от любой позиции до конца списка независимо от его длины. Вспомните, что отрицательный индекс возвращает элемент, находящийся на заданном расстоянии от конца списка; следовательно, вы можете получить любой срез от конца списка. Например, чтобы отобрать последних трех игроков, используйте срез players[-3:]:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:])
Программа выводит имена трех последних игроков, причем продолжает работать даже при изменении размера списка.