2022-11-10
#python
Шпаргалка по индексам и срезам
Индексы
Индексы позволяют обратиться к элементам упорядоченных коллекций. Они представляют собой число в квадратных скобках.
'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
Возможно будет интересно
Новичок
Условные конструкции и сопоставление структурных шаблонов
Шпаргалка по условным конструкциям и сопоставлению структурных шаблонов
2022-11-09
2022-11-09
Продвинутый
Шпаргалка по модулю itertools
Шпаргалка по всем функциям модуля itertools, создающим разнообразные итераторы.
2022-10-28