Просмотр содержимого документа
«Списки и массивы в языке Python.»
Массивы в языке Python
Дополнительный материал к параграфу 67 учебника Полякова
Введение
- Как такового, типа данных «массив» в языке Python нет, есть модуль array , который определяет массивы в python.
- Они (массивы) используются редко, когда нужно достичь высокой скорости работы. В остальных случаях массивы можно заменить другими типами данных: списками , кортежами, строками .
- Мы рассматриваем только списки и строки.
Списки (тип list)
Списки можно рассматривать как аналог массива в других языках программирования, за исключением важной особенности – списки в качестве своих элементов могут содержать любые объекты.
Массивы бывают одномерные и многомерные, самые часто используемый – двумерный массив.
В математике такой двумерный массив (таблицу) называют МАТРИЦЕЙ .
Списки в Python
- упорядоченные изменяемые коллекции объектов произвольных типов
(почти как массив, но типы могут отличаться).
Создание списка
- Создать список можно несколькими способами. Например, можно обработать любой итерируемый объект (например, строку) встроенной функцией list :
- Пример
Print (list('список'))
На экран будет выведен результат
['с', 'п', 'и', 'с', 'о', 'к']
s = [] # Пустой список w = ['s', 'p', ['isok'], 2] s [] w [ 's', 'p', ['isok'] , 2 ] ====================================== Работа примера показана в интерактивном режиме. Как видно из примера, список может содержать любое количество любых объектов (в том числе и вложенные списки – выделено красным цветом), или не содержать ничего (выделено синим цветом). " width="640"
Список можно создать и при помощи литерала:
s = [] # Пустой список
w = ['s', 'p', ['isok'], 2]
s
[]
w
[ 's', 'p', ['isok'] , 2 ]
======================================
Работа примера показана в интерактивном режиме.
Как видно из примера, список может содержать любое количество любых объектов (в том числе и вложенные списки – выделено красным цветом), или не содержать ничего (выделено синим цветом).
Генератор списков
- Генератор списков - способ построить новый список, применяя выражение к каждому элементу последовательности. Генераторы списков очень похожи на цикл for.
A = []
for i in range (N):
A. append ( [ 0 ]*M )
Получили двумерный массив из N строк и M столбцов
Функции и методы списков
Для списков доступны основные встроенные функции, а также методы списков.
Например –
Z=list.pop ([i]) - удаляет i-ый элемент и возвращает его в Z. Если индекс не указан, удаляется ПОСЛЕДНИЙ ЭЛЕМЕНТ
ВНИМАНИЕ! методы списков , в отличие от строковых методов , изменяют сам список , а потому результат выполнения не нужно записывать в эту переменную.
Список самых популярных встроенных функций для работы со списками
- len(L) – возвращает число элементов в списке L
- max(L) – возвращает максимальное значение в списке L
- min(L) – возвращает минимальное значение в списке L
- sum(L) – возвращает сумму значений в списке L
- sorted(L) – возвращает копию списка L, в котором элементы упорядочены по возрастанию. Не изменяет список L
Как идет работа со списками
- Переменная e содержит адрес списка ( id6). Каждый элемент списка является указателем (хранит адрес) другого объекта (в данном случае вещественных чисел).
h=['bonjour','привет','hola','aloha','привіт'] Производим изменения списка: h[1]='hello' h ['bonjour', 'hello', 'hola', 'aloha', 'привіт'] h[1] 'hello' В момент изменения списка в памяти создается новый строковый объект 'hello'. Затем адрес на этот объект ( id7) помещается в первую ячейку списка (вместо id2). Python увидит, что на объект по адресу id2 нет ссылок, поэтому удалит его из памяти. " width="640"
Как происходит изменение в списке
- h=['bonjour','привет','hola','aloha','привіт'] Производим изменения списка:
- h[1]='hello'
- h
- ['bonjour', 'hello', 'hola', 'aloha', 'привіт']
- h[1]
- 'hello'
-
В момент изменения списка в памяти создается новый строковый объект 'hello'. Затем адрес на этот объект ( id7) помещается в первую ячейку списка (вместо id2). Python увидит, что на объект по адресу id2 нет ссылок, поэтому удалит его из памяти.
Дополнительный материал по источникам:
1
Д. Ю. Федоров
ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ПРИМЕРЕ ЯЗЫКА PYTHON
Учебное пособие, Санкт-Петербург, 2017
2
Python 3 для начинающих
https://pythonworld.ru/samouchitel-python