Python Glossary English

все Python 3Списки (list)понятие

Срезы списка

индексы/срезы

Срезы возвращают новый список. s[a:b:c] — с шагом c. [::-1] — реверс. Срез без аргументов — поверхностная копия.

Синтаксис

lst[a:b]  |  lst[a:b:c]  |  lst[::-1]

Срез никогда не падает по границам: у короткого списка lst[5:100] просто вернёт пустой список — этим он и отличается от lst[5], который бросит IndexError. Копия поверхностная: вложенные списки в копии — те же самые объекты, и правка через один список видна во втором; для независимой копии нужен copy.deepcopy(). Присваивание в срез (lst[1:3] = [...]) меняет исходный список и может изменить его длину.

Примеры

lst = [0, 1, 2, 3, 4, 5]
print(lst[1:4])
# → [1, 2, 3]
print(lst[:3])
# → [0, 1, 2]
print(lst[3:])
# → [3, 4, 5]
print(lst[::-1])
# → [5, 4, 3, 2, 1, 0]
print(lst[::2])
# → [0, 2, 4]
copy = lst[:]
print(copy is lst)
# → False (новый объект)
lst[1:4] = [10, 20, 30]
print(lst)
# → [0, 10, 20, 30, 4, 5]

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности