Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Списки, начало. (приложение к уроку 11)

Доброго времени суток, читатели, зрители моего канала programmer's notes.

Данная статья это приложение к уроку 11.

Списки. Понимание объекта

Тип списки относится к целой группе типов в языке Python, называемый коллекциями.

Часто спрашивают, в чем различие между списками и массивами. Традиционные массивы это:

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

Схожесть списка с массивом только в том, что доступ к элементам списка тоже возможен по индексу. Соседние же элементы списка не обязаны располагаться в соседних областях памяти. А самое главное, типы элементов списка могут быть разными. В том числе элементом списка может и список. На основе списков языка Python можно строить очень сложные структуры.

ls = [3, 6, 8, 0, -2]

здесь мы имеем список состоящий из однородных элементов - целых чисел. Соответственно ls[0] это 3, ls[1] это 6 и т.д. Длину списка, как строки определяем через функцию len(). Для нашего случая

print(len(ls))

дает

5

Другими словами последний элемент списка имеет индекс len(ls) - 1.

Но к элементам списка можно обращаться и через отрицательные индексы, например ls[-1] это последний элемент списка, а ls[-2] предпоследний.

Но как вам такой список

ls = [6, 'qwerty', -100, [2, 1, 3, 4], 9]

В списке элементы разного типа. В том числе ls[3] - является списком. К его элементам можно обратиться так ls[3][0], ls[3][1] и т.д.

Для задания пустого списка можно использовать или ls = [] или ls = list().

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

Для ввода элементов списка с клавиатуры можно воспользоваться незамысловатым способом

В данном случае элементами списка будут строки, но при желании, полученные с клавиатуре строки, можно преобразовать к какому-то другому типу, например целому числу (функция int()).

Кстати строки

a = input()
ls.append(a)

можно заменить просто на

ls.append(input())

Очень важная информация. Когда мы говорили о строках, то отмечали, что при использовании индекса нельзя присвоить значение конкретному символу. Т.е. вот такая запись s[2] = 'G' для строк в принципе не возможна. А вот для списков можно написать ls[3] = 'qwertyu', т.е. по индексу присвоить значение отдельному элементу. Но об этом будем говорить в следующем видеоуроке.

Еще очень важная возможность. Строку можно преобразовать в список состоящий из символов и обратно.

В программе показано преобразование строки в список и обратно. При обратном преобразовании (метод jon()) между символами были поставлены '++'. Результат выполнения программы

qwertyuiop
q w e r t y u i o p
q++w++e++r++t++y++u++i++o++p

Да, и еще один важный вопрос, связанный со списками.

ls = [1, 3, 6]
ls1 = ls

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

ls1 = ls[:]

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

На этом краткое дополнение к уроку 11 я заканчиваю. В следующем уроке работа со списками продолжится.

Замечание 1
Функция list() не только позволяет создавать пустой список, но и может преобразовать другой тип данных (строка, множество, кортеж) в список. С её полезными свойствами мы не раз столкнёмся.

Замечание 2
Для python создана мощная библиотека работы с большими массивами. Это именно массивы, а не списки. Она ориентирована проведение сложных и трудоёмких вычислений. Называется она numpy. В
своё время я изложу здесь её основы.

Всего наилучшего. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Следующий урок

Давайте будем различать программирование как искусство и программирование как прикладная дисциплина в конкретных корпоративных обстоятельствах
Давайте будем различать программирование как искусство и программирование как прикладная дисциплина в конкретных корпоративных обстоятельствах

#программирование #программисты #языки программирования #python