Индексы и срезы в Python на примерах
Индексы дают доступ к отдельным элементам, срезы — к их кускам. Это база работы со списками и строками.
Индексы: нумерация с нуля
Элементы нумеруются с 0: первый — индекс 0, второй — 1 и так далее. Отрицательные индексы считают с конца: -1 — последний. Это касается и списков, и строк.
word = 'дрон'
print(word[0]) # 'д'
print(word[-1]) # 'н'
Срезы: берём кусок
Срез [start:stop] берёт элементы с индекса start до stop (не включая stop). Можно опускать края: [:2] — первые два, [2:] — с третьего до конца.
nums = [10, 20, 30, 40]
print(nums[1:3]) # [20, 30]
print(nums[:2]) # [10, 20]
Третий параметр — шаг
У среза есть третий параметр — шаг: [::2] берёт каждый второй элемент, а [::-1] переворачивает последовательность. Это компактный и мощный приём, который часто выручает.
Частые вопросы
Почему stop не включается? Так задумано: [1:3] берёт элементы 1 и 2, ровно stop-start штук.
Работают ли срезы со строками? Да, точно так же, как со списками.
Начать игру бесплатно