Это старая версия документа!
Нумерованные наборы объектов, каждый элемент содержит лишь ссылку на объект, поэтому могут содержать смесь любых типов данных и иметь неограниченную вложенность.
Поддерживают обращение по индексу, срез, конкатенацию, повторение, проверку на вхождение (не вхождение).
Изменяемый тип данных
Вложенные списки следует создавать методом append()
т.к. хранятся ссылки, можно легко ошибиться групповым присваиванием, для создания копии можно использовать срез, либо метод copy(), лучше deepcopy()
Можно удалить часть списка присвоив срезу пустое значение
Элементы в обратном порядке: arr[::-1], последний элемент: arr[-1:]
Обращение за пределы индекса- исключение
Элементы могут быть любого типа, в т.ч. и целыми списками
arr= [ [1, 2, 3, 'a'] [3, 2, 1, 'b'] [4, 5, 6, [1, 2]] ]
При переборе в цикле for, итератор можно изменять, но если тип данных не изменяемый, то изменения не сохранятся
Для генерации индексов можно использовать диапазон: range(len(arr))
Так же, есть функция enumerate(), возвращает кортеж из индекса и значения, текущего элемента списка
for i, elem in enumerate(arr): arr[i] *= 2
Не изменяемый тип данных
Набор уникальных значений. Может быть как изменяемым так и не изменяемым
Содержит только последовательные значения, формируется «на лету», занимает минимум ресурсов