В современных языках программирования есть предустановленные типы: символы, числа или классы. Есть и коллекции — массивы, списки и прочие структуры данных — множества элементов фиксированной или динамической размерности.
При объявлении переменной под объект выделяется оперативная память. Например, для строки в четыре символа — восемь байт. Каждый символ занимает адрес в оперативной памяти, а строка представляет собой массив этих адресов. В C-подобных языках массивы создаются определенного размера, под тип объектов. В Python же нет ограничений ни по типу элементов множества, ни по его размерности. То есть список в Python — это динамическая коллекция указателей.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Как решать типовые задачи
🚀 Объявить список
Синтаксическая конструкция для создания списка Python:
mylst = [1, 2, 3, 4, 5]
Mylst — название переменной. В скобках указали элементы.
В Python есть ключевое слово list(). Это функция, которая либо создает пустой список, либо приводит к списку итерируемый объект. Чтобы создать пустой объект списка с помощью функции, напишите:
mylst = list()
🚀 Обратиться к элементу
Списки — это множества элементов. Чтобы обратиться к ним, указывают индекс — порядковый номер. В отличие, например, от словаря, который позволяет получать значение по ключу. Индекс первого элемента — 0, второго — 1, третьего — 2.
Так обратитесь к пятому элементу списка:
mylst = [1, 2, 3, 4, 5] print(mylst[4]) 5
🚀 Добавить элемент
Сделайте это с помощью встроенной функции append():
mylst = [1, 2, 3, 4, 5] mylst.append(6) print(mylst) [1, 2, 3, 4, 5, 6]
Либо с помощью метода insert(), который принимает два аргумента — индекс и значение:
mylst = [1, 2, 3, 4, 5] mylst.insert(1, 25) print(mylst) [1, 25, 2, 3, 4, 5]
❗ Если добавить элемент с помощью этого метода, произойдет смещение, а не его замена.
🚀 Изменить элемент
Для этого установите новое значение по его индексу:
mylst = [1, 2, 3, 4, 5] mylst[1] = None print(mylst) [1, None, 3, 4, 5]
В Python необязательно, чтобы элементы коллекции были одного типа.
🚀 Удалить элемент
Для этого воспользуйтесь встроенной функцией del():
mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1] del mylst[2] print(mylst) [1, 2, 4, 5, 4, 3, 2, 1]
Либо примените метод удаления remove():
mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1] mylst.remove(2) print(mylst) [1, 3, 4, 5, 4, 3, 2, 1]
🚀 Проверить на вхождение
Чтобы проверить, есть ли указанный элемент в списке, воспользуйтесь ключевым словом in:
mylst = [1, 2, 3, 4, 5] print(None in mylst) False print(3 in mylst) True
🚀 Объединить списки
Вызовите метод extend():
mylst = [1, 2] mylst1 = [3, 4] mylst2 = [5] mylst.extend(mylst1) print(mylst) [1, 2, 3, 4] mylst.extend(mylst2) print(mylst) [1, 2, 3, 4, 5]
Или оператор сложения с присваиванием:
mylst = [1, 2] mylst1 = [3, 4] mylst2 = [5] mylst += mylst1 print(mylst) [1, 2, 3, 4] mylst += mylst2 print(mylst) [1, 2, 3, 4, 5]
🚀 Копировать список
Воспользуйтесь методом списков copy():
mylst = [1, 2, 3, 4, 5] mylst_copy = mylst.copy() print(mylst) [1, 2, 3, 4, 5] print(mylst_copy) [1, 2, 3, 4, 5]
Либо создайте полный срез:
mylst = [1, 2, 3, 4, 5] mylst_copy = mylst[::] print(mylst) [1, 2, 3, 4, 5] print(mylst_copy) [1, 2, 3, 4, 5]
🚀 Выполнить итерацию по списку
Воспользуйтесь конструкцией for:
mylst = [1, 2, 3, 4, 5] for item in mylst: print(item) 1 2 3 4 5
Итерацию еще выполняют с помощью цикла while:
mylst = [1, 2, 3, 4, 5] i = 0 while True: try: print(mylst[i]) except IndexError: print("Done!") break i += 1 1 2 3 4 5 Done!
«Если вы думаете, что хорошо разбираетесь в списках, подумайте еще раз. Дело в том, что списки в Python больше похожи на то, что мы привыкли называть массивами в других языках программирования, а не на связанные списки, которые обычно приходят на ум при слове „список“».
Пол Бэрри«Изучаем программирование на Python»По-настоящему хорошо изучить язык можно на курсе Skypro «Python-разработчик». Программа выстроена от простого к сложному: сначала необходимый минимум теории, а потом много практики, чтобы усвоить знания и отработать навыки. Всё это — с поддержкой опытных наставников и кураторов.
Методы списков
✔️ index
Позволяет узнать индекс элемента, возвращает его при первом совпадении:
mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1] print(mylst.index(3)) 2✔️ count
Позволяет получить количество элементов списка:
mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1] count_for_one = mylst.count(1) print(count_for_one) 2 count_for_five = mylst.count(5) print(count_for_five) 1✔️ clear
Полностью очищает список:
mylst = [1, 2, 3, 4, 5] mylst.clear() print(mylst) []✔️ sort
Сортирует список по указанному ключу. Принимает два необязательных аргумента: key — ключ, по которому производят сортировку, булевый флаг reverse — сортирует объекты в обратном порядке. По умолчанию в качестве ключа используют значение переменной:
mylst = [1, 3, 2, 4, 5] mylst.sort() # reverse=False print(mylst) [1, 2, 3, 4, 5]✔️ reverse
Инвертирует последовательность элементов:
mylst = [1, 2, 3, 4, 5] mylst.reverse() print(mylst) [5, 4, 3, 2, 1]✔️ pop
Позволяет получить элемент и удаляет его из списка. Принимает индекс в качестве необязательного аргумента. По умолчанию это последний элемент:
mylst = [1, 2, 3, 4, 5] x = mylst.pop() print(x) 5 print(mylst) [1, 2, 3, 4] y = mylst.pop(2) print(y) 3 print(mylst) [1, 2, 4]Встроенные функции
✅ Получение длины любой коллекции
Используйте функцию len():
mylst = [1, 2, 3, 4, 5] list_length = len(mylst) print(list_length) 5✅ Возврат элемента с максимальным значением
Используйте функцию max():
mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1] max_value = max(mylst) print(max_value) 5✅ Возврат элемента с минимальным значением
Используйте функцию min():
mylst = [1, 2, 3, 4, 5] min_value = min(mylst) print(min_value) 1✅ Приведение к типу
Из любого итерируемого объекта можно получить список. Для этого передайте итерируемый объект функции list(). Этим объектом может быть строка, множество, кортеж или генератор:
myset = {1, 2, 3, 4} mytuple = (5, 6) mystring = "Test string" lst1 = list(myset) lst2 = list(mytuple) lst3 = list(mystring) print(lst1) [1, 2, 3, 4] print(lst2) [5, 6] print(lst3) ['T', 'e', 's', 't', ' ', 's', 't', 'r', 'i', 'n', 'g']Работа со срезами
Срезы позволяют создавать новые списки на основе существующего. Можно получить полную копию списка или некоторые элементы. Для этого используют шаг или указывают начальный и крайний индексы:
mylst = [1, 2, 3, 4, 5] mylst_slice_0 = mylst[::] # полная копия print(mylst_slice_0) [1, 2, 3, 4, 5] mylst_slice_1 = mylst[0:2] # крайний индекс (не включается в срез) print(mylst_slice_1) [1, 2] mylst_slice_2 = mylst[::2] # указание шага print(mylst_slice_2) [1, 3, 5]Синтаксис работы со срезами:
# имя переменной[стартовый индекс:конечный индекс:шаг] variable_name[start_index:end_index:step]Срезы часто используют в своей работе аналитики данных. Это позволяет им автоматизировать и ускорить решение некоторых задач. Основы Python для анализа данных можно освоить на курсе Skypro «Аналитик данных».
Генератор списков
Эта конструкция позволяет легко создавать списки:
mylst = [_ for _ in range(6)] print(mylst) [0, 1, 2, 3, 4, 5]Вы можете указать условия для генерации элементов:
mylst = [x if x % 2 == 0 else "odd" for x in range(20)] print(mylst) [0, 'odd', 2, 'odd', 4, 'odd', 6, 'odd', 8, 'odd', 10, 'odd', 12, 'odd', 14, 'odd', 16, 'odd', 18, 'odd']Главное о списках в Python
- Списки — это коллекции указателей на элементы. В Python необязательно, чтобы все элементы списка были одного типа.
- Список создают с помощью функции list(), генератора списков или срезов.
- Решать типовые задачи позволяют методы списков: insert() — добавить элементы, remove() — удалить, extend() — объединить, copy() — копировать. А еще index(), sort() и другие.
- В Python есть встроенные функции, чтобы работать с объектами. Например, del(), list(), len(), max(), min().
Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Вас ждут 400 часов теории и практики, живые вебинары для разбора домашек. Сделаете четыре проекта для портфолио, получите диплом о переподготовке и помощь в поиске работы: создадите цепляющее резюме и подготовитесь к собеседованиям.
Проверь как ты усвоил материалы статьиПройди тест и узнай насколько ты лучше других читателей
Добавить комментарий