Списки в Питоне.
| Сайт: | Информатикс |
| Курс: | Программирование в "Эврике" |
| Книга: | Списки в Питоне. |
| Напечатано:: | Гость |
| Дата: | Пятница, 21 Ноябрь 2025, 22:12 |
1. Списки.
Список — это специальный тип данных, состоящий из нескольких элементов. Элементами списка могут быть данные произвольных типов: целые и действительные числа, строки и даже другие списки. Простейший способ задать список в программе: перечислить его элементы в квадратных скобках через запятую. Например:
A=[1,2,3,4,5]
B=["У лукоморья","дуб зеленый"]
C=["one",1,1.0,"1"]
В этом примере переменная A — это список из 5 элементов, являющихся целыми числами, B —
это список из двух элементов, являющихся строками, а C — это список из 4 элементов:
строки "one", целого числа 1, действительного числа 1.0 и строки "1"
(и все это — различные объекты).
Во многом списки похожи на множества в математике, их главное отличие в том, что списки
могут содержать повторяющиеся элементы и элементы списка упорядочены. Можно задать и пустой
список, не содержащий элементов: A=[].
Пользователь может вводить список с клавиатуры, перечислив его элементы через запятую
в квадратных скобках. Также списки можно выводить на экран инструкцией print.
Воспользуемся списком для решения задачи нахождения суммы большого количества чисел:
A=input("Введите список чисел: ")
S=0
for f in A:
S=S+f
print "Сумма элементов списка", A, "равна", S
Эта программа сначала просит пользователя ввести список чисел, затем переменной S присваивается
значение 0. В эту переменную мы будем осуществлять суммирование всех элементов списка, организовав
цикл по переменной f, принимающей все значение из введенного списка и увеличивая внутри списка
значение переменной S на f.
Как мы видим, список, значения из которого принимает переменная, меняющаяся в цикле, можно задавать
как в строке, содержащей инструкцию for, так и раньше (а в инструкции for тогда
следует указать идентификатор переменной, хранящей список).
Во многих языках программирования структуры данных, наиболее близкие спискам в Питоне, называются массивами.
Во всех реальных программах приходится иметь дело не с отдельными переменными, а с наборами данных. Например, база данных учащихся школы — это набор данных, содержащих их фамилии, имена, классы; файл, редактируемый в текстовом редакторе хранится в виде набора строк и т.д. Для хранения большого числа данных (как правило, однородных) используются структуры, которые во многих языках программирования называются массивами. Массивы в Питоне называются списками, потому что они поддерживают ряд дополнительных операций, не присущих стандартным массивам.
Выше рассказывалось, что список можно задать перечислив его элементы
в квадратных скобках через запятую, либо при помощи функции input, если
пользователь введет список в таком же виде, либо можно создать список при помощи функции
range. Например, если необходимо, чтобы переменная A была списком из n
элементов, это можно сделать при помощи присваивания A=range(n).
Распечатать элементы массива можно при помощи инструкции print.
Внимание! Если при вводе списка не заключить его в квадратные скобки, а просто перечислить его элементы через запятую, то будет создан объект, называемый кортежем. Его главное отличие от списков заключается в том, что элементы кортежа нельзя изменять. При попытке присвоить элементу кортежа новое значение будет выдана ошибка "TypeError: object doesn't support item assignment" (Ошибка типа: объект не поддерживает возможность изменения элемента). В случае возникновения таких ошибок будет говориться "смотри листочек".
Обратиться (узнать значение или изменить) элемент с номером i списка
A можно используя оператор []: A[i]. Элементы
списка нумеруются, начиная с 0, то есть если в списке есть n элементов,
то начальный элемент списка имеет номер 0, а конечный номер n-1.
Как правило, номера элементов списка называются индексами
(произносится "элемент с индексом 0").
Узнать количество элементов в списке A можно при помощи функции len(A).
Таким образом, распечатать список поэлементно можно при помощи следующей программы:
A=input("Введите список: ")
for i in range(0,len(A)):
print "Элемент с номером", i, "равен", A[i]
В данном примере если список A состоит из n элементов, то
переменная i принимает значения от 0 до n-1, то есть
всевозможные значения индексов списка. В следующем примере используется
аналогичный цикл для того, чтобы удвоить все элементы списка:
A=input("Введите список: ")
for i in range(0,len(A)):
A[i]=2*A[i]
Также можно использовать отрицательные значения индекса для нумерации элементов с конца списка:
A[-1] обозначает последний элемент списка A,
A[-2] — второй с конца и т.д. до первого элемента A[-len(A)].
При попытке обратиться к списку из n элементов по индексу, большему, чем
n-1 или меньшему, чем -n, будет выдана ошибка IndexError: list index out of range
(значение индекса списка выходит за допустимый диапазон). Такая ошибка является весьма типичной.