НОЧУ ДПО "Национальный открытый университет "ИНТУИТ"
Опубликован: 24.01.2021 | Доступ: свободный | Студентов: 1229 / 21 | Длительность: 03:57:00
Лекция 5:

Списки

< Лекция 1 || Лекция 5: 123

Смотреть на youtube

Тип данных является сложным, если значение этого типа можно рассматривать как некоторую совокупность элементов. Элементы сложного типа могут быть значениями как простых типов - чисел, строк, логических значений, так и сложных типов.

В большинство языков программирования встроен такой тип данных как массив, представляющий упорядоченную совокупность данных одного типа.

В языке Python встроенного типа массив нет, но есть такие сложные типы, как:

  1. Списки,
  2. Словари,
  3. Кортежи,
  4. Множества,
  5. Файлы.

О проекте, сопровождающем главу 2

В тексте, который я пишу, программный код играет важное, если не определяющее значение. Все приводимые примеры - это фрагменты созданного проекта. Для этой лекции я создал в Visual Studio 2019 - проект на языке Python с именем Lecture2.rar, в который включил пять модулей с именами; TypeList, TypeDict, TypeTuple, TypeSet, TypeFile. Каждый модуль содержит набор тестовых функций, которые вызываются для исполнения. Коды этих функций и полученные результаты приводятся в тексте лекций.

Списки (class 'list')

Список - упорядоченная совокупность элементов возможно разного типа. Элементами списка могут быть списки. Список относится к изменяемым типам. Константы, задающие список, заключаются в квадратные скобки, элементы разделяются запятыми.

Список является более общей структурой данных чем массив хотя бы потому, что его элементы могут быть разных типов. Но понятно, что списки позволяют моделировать массивы. Обычный список, содержащий элементы одного типа можно рассматривать как одномерный массив. Двумерный массив может быть представлен списком, все элементы которого являются списками, представляющими одномерные массивы. Так что список позволяет моделировать массив массивов, что позволяет моделировать массивы произвольной размерности.

Список можно рассматривать как массив ссылок на объекты. Поскольку список является изменяемым типом, то в результате выполнения операций над списком может изменяться сам объект, а ссылка останется без изменения. Поскольку объект может иметь псевдонимы, - имена, связанные со ссылками, то изменение объекта означает, что изменяются значения у всех имен - псевдонимов данного объекта. Это требует от программиста, работающего со списками, особой аккуратности, чтобы изменения объекта, выполненные для одного из его имен, корректно работали в тех модулях, где используется этот же объект, но под другим именем.

Какие операции допустимы при работе со списком? Элементы списка можно получать по индексу, их можно изменять, можно добавлять и удалять элементы, список можно сортировать, можно получать и изменять подсписок, используя срезы, выполнять другие операции.

Приведем некоторые примеры работы со списками.

Начнем с создания списка, присвоив переменной L константный список - последовательность элементов, разделяемых запятой, заключенную в квадратные скобки.

Метод append позволяет добавить в конец списка новый элемент. Метод insert позволяет добавить новый элемент в заданную позицию списка. Нумерация элементов списка начинается с нуля. Метод extend позволяет добавить в конец списка итерируемую последовательность элементов, заданную, например, списком.

Пример:

 
#Примеры работы со списками - class list
def test1():
    L = [1, 2, 3]
    L.append([1,2,3])    
    L.insert(3, 4)
    L.extend([5, 6, 7])
    print(L)
#test1()

Результат:


< Лекция 1 || Лекция 5: 123
Елена Лаптева
Елена Лаптева

Думаю. что не смогу его закончить. Хотелось предупредить других - не тратьте зря время, ищите другой курс.

Михаил Сидоров
Михаил Сидоров

Если S - последовательность, то срез задается как S(i : j) и содержит j - i элементов,

а в примере используютс другие скобки - 

NL[1:3] = ["решили", "не", "искать"]

или это не срез, тогда, что это?