Доброго времени суток, читатели, зрители моего канала 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