Шпаргалка по индексам и срезам Шпаргалки

Шпаргалка по индексам и срезам

Индексы

Индексы позволяют обратиться к элементам упорядоченных коллекций. Они представляют собой число в квадратных скобках.

'ABCD'[1]
# B

Нумерация коллекций может начинаться с начала или конца

Нумерация Первый элемент Последний элемент
Прямая 0 n-1
Обратная -n -1

Обращение по несуществующему индексу вызовет ошибку

'ABC'[99]
# IndexError: list index out of range

Срезы

Срез Пример Результат
s[start:stop:step] 'ABCDEFGHIJKLMN'[2:10:2] CEGI
s[start:stop] 'ABCDEFGHIJKLMN'[2:6] CDEF
s[:stop:step] 'ABCDEFGHIJKLMN'[:6:2] ACE
s[start::step] 'ABCDEFGHIJKLMN'[4::2] EGIKM
s[start:] 'ABCDEFGHIJKLMN'[10:] KLMN
s[:stop] 'ABCDEFGHIJKLMN'[:4] ABCD
s[::step] 'ABCDEFGHIJKLMN'[::3] ADGJM
s[:] list[:] Копия list

Если позиция start находится после stop или последнего элемента списка, срез вернет пустую коллекцию того же типа.

'ABC'[2:1]  # ''
`ABC'[9:]  # ''
Отрицательный шаг в срезе
Пример Результат
'ABCDEFG'[5:2:-1] FED
'ABCDEFG'[3::-1] DCBA
'ABCDEFG'[:3:-1] GFE
Рецепты

[:] — создает поверхностную копию. Применяется для изменяемых коллекций (например, списков).

a = [1, 2, 3]
b = a
# a и b ссылаются на общий список
b.append([])
a
# [1, 2, 3, []]
b = a[:]
# b ссылается на копию списка
b.append(5)
a
# [1, 2, 3, []]
b[3].append(1)
# Вложенный список остался общим
a
# [1, 2, 3, [1]]

[::-1] — разворачивает коллекцию.

'ABCD'[::-1]
# DCBA
Практический Python для начинающих
Практический Python для начинающих

Станьте junior Python программистом за 7 месяцев

 7 месяцев

Возможно будет интересно

Условные конструкции и сопоставление структурных шаблонов Шпаргалки
Новичок
Условные конструкции и сопоставление структурных шаблонов

Шпаргалка по условным конструкциям и сопоставлению структурных шаблонов

2022-11-09
Операторы в Python Шпаргалки
Новичок
Операторы в Python

Шпаргалка по арифметическим и условным операторам в Python

2022-11-09
Шпаргалка по модулю itertools Шпаргалки
Продвинутый
Шпаргалка по модулю itertools

Шпаргалка по всем функциям модуля itertools, создающим разнообразные итераторы.

2022-10-28