Справочник от Автор24
Поделись лекцией за скидку на Автор24

Структуры данных Python

  • 👀 682 просмотра
  • 📌 636 загрузок
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Структуры данных Python» pdf
Объектно-ориентированный анализ и программирование. Лекция 2019 – 3 . Структуры данных Python Структуры данных – это структуры, которые могут хранить некоторые данные вместе. Другими словами, они используются для хранения связанных данных. В Python существуют четыре встроенных структуры данных: 1. Список, 2. Кортеж, 3. Словарь 4. Множество. 5. Строки (?- скалярный или структурированный тип ?) В Python нет массивов. Однако списки обладают многими свойствами массивов. Для работы с матрицами и многомерными массивами может использоваться пакет NumPy (библиотека с открытым исходным кодом). Список (list) Списки в Python - упорядоченные изменяемые коллекции объектов произвольных типов. Список элементов должен быть заключён в квадратные скобки, чтобы Python понял, что это список. Как только список создан, можно добавлять, удалять или искать элементы в нём. Поскольку элементы можно добавлять и удалять, мы говорим, что список – это изменяемый тип данных, т.е. его можно модифицировать. 1 Объектно-ориентированный анализ и программирование. Лекция 2019 – 3 . Рассмотрим пример работы со списком. Пример 9. # Это список покупок shoplist = ['хлеб', 'молоко', 'яблоки', 'бананы'] print('Я должен сделать ', len(shoplist), 'покупок.') print('Покупки:', end=' ') for item in shoplist: print(item, end=' ') print('\nТакже нужно купить риса.') shoplist.append('рис') print('Теперь мой список покупок таков:', shoplist) print('Отсортирую-ка я свой список') shoplist.sort() print('Отсортированный список покупок выглядит так:', shoplist) print('Первое, что мне нужно купить, это', shoplist[0]) olditem = shoplist[0] del shoplist[0] print('Я купил', olditem) print('Теперь мой список покупок:', shoplist) Список можно создать с помощью функции list() на основе любого итерируемого объекта. Пример 10. >>> list('список') Получим ['с', 'п', 'и', 'с', 'о', 'к'] 2 Объектно-ориентированный анализ и программирование. Лекция 2019 – 3 . Список может содержать любое количество любых объектов (в том числе и вложенные списки), или не содержать ничего. Пример 11. spisok = [11, 34, 3.14, 's', ['h','i','!']] print(spisok[0]) print(spisok[4]) print(spisok[4][1]) Получим: 11 ['h', 'i', '!'] i Списки можно создавать с помощью генератора списков. Пример 12. >>> c = [c * 3 for c in 'list'] >>> c ['lll', 'iii', 'sss', 'ttt'] Функции и методы списков Функция len(список) возвращает длину списка (len – length, длина). 3 Объектно-ориентированный анализ и программирование. Лекция 2019 – 3 . Списки являются очень мощным инструментом работы с данными и позволяют решать очень много различных задач. При попытке доступа к несуществующему индексу возникает исключение (исключительная ситуация) IndexError. Так, если в списке из Примера 11 мы попытаемся получить элемент с индексом 5, то получим: Пример 13. spisok = [11, 34, 3.14, 's', ['h','i','!']] print(spisok[0]) print(spisok[4]) print(spisok[4][1]) 4 Объектно-ориентированный анализ и программирование. Лекция 2019 – 3 . print(spisok[5]) Вывод: 11 ['h', 'i', '!'] i Traceback (most recent call last): File " \Лекция - 1\primer13.py", line 5, in print(spisok[5]) IndexError: list index out of range В Python поддерживаются также отрицательные индексы, при этом нумерация идёт с конца, например: Пример 14. spisok = [11, 34, 3.14, 's', ['h','i','!']] print(spisok[-1]) print(spisok[-3]) Вывод: ['h', 'i', '!'] 3.14 Отрицательные индексы – это довольно таки полезная возможность, так как позволяет удобным образом обрабатывать списки с конца. 5 Объектно-ориентированный анализ и программирование. Лекция 2019 – 3 . Срезы (slice) Срез позволяет получить часть списка (или строки). item[START:STOP:STEP] - операция среза берёт срез от номера START, до STOP (не включая его), с шагом STEP. По умолчанию START = 0, STOP = длине объекта, STEP = 1. Любой параметр (а возможно, и все) параметры могут быть опущены. Пример.2-1 (файл primer2-1.py) s = [3, 4, 8, 7] print(s[:]) # Срез – все элементы списка print(s[1:]) # Срез – элементы с 1 до последнего print(s[:3]) # Срез – элементы с 0 до 2 print(s[::2]) # Срез – элементы от начала с шагом 2 Вывод: [3, 4, 8, 7] [4, 8, 7] [3, 4, 8] [3, 8] В срезе параметры также могут быть отрицательными. Пример.2-2 (файл primer2-2.py) s = [3, 4, 8, 7] print(s[::-1]) # Срез – все элементы списка в обратном порядке print(s[:-2]) # Срез – элементы с 0 до -2 6 Объектно-ориентированный анализ и программирование. Лекция 2019 – 3 . print(s[-2::-1]) # Срез – элементы с -2 до 0 с шагом -1 print(s[1:4:-1])2 Вывод: [7, 8, 4, 3] [3, 4] [8, 4, 3] [] В последнем случае результатом является пустой список, так как START>>k = tuple() >>> k () 2) С помощью литерала кортежа – круглых скобок 8 Объектно-ориентированный анализ и программирование. Лекция 2019 – 3 . >>> k = () >>> k () Создадим кортеж из 1 элемента. >>> a = ('s') >>> a Получим 's' , а это список строка. Чтобы создать не список, а кортеж, нужно записать так: >>> a = ('s',) >>> a Получим ('s',) Запятая после первого (и единственного) элемента кортежа необходима для того, чтобы Python мог отличить кортеж от скобок, окружающих объект в выражении. Эта запятая нужно только у кортежей, состоящих из 1 элемента. Правильной будет также такая запись >>> a = 's', С помощью функции tuple() можно создать кортеж из итерируемого объекта: >>> k=tuple('Это кортеж') >>> k ('Э', 'т', 'о', ' ', 'к', 'о', 'р', 'т', 'е', 'ж') 9 Объектно-ориентированный анализ и программирование. Лекция 2019 – 3 . Операции с кортежами К кортежам применимы все операции над списками, которые не изменяют кортеж (сложение, умножение на число, методы index() и count() и некоторые другие операции). Можно также по-разному менять элементы местами, и так далее. Например, (гордость программистов на python !) - обмен значениями двух переменных. Пример 2-5(файл primer2-5.py) . a='Python' b='Pascal' a,b=b,a # Обмен значениями на Pyhton! print('a='+a) print('b='+b) Вывод a=Pascal b=Python Если попробовать изменить элемент кортежа, то мы получим ошибку, так как кортежи являются неизменяемыми объектами. Пример 2-6(файл primer2-6.py) . # Пытаемся изменить кортеж a='Python','Pascal' print(a) a[1]='C#' a.append('C#') Вывод. 10 Объектно-ориентированный анализ и программирование. Лекция 2019 – 3 . Здесь последние 2 оператора вызовут ошибки. Менять элементы кортежа нельзя, но переопределить весь кортеж заново – можно. 11
«Структуры данных Python» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Тебе могут подойти лекции

Смотреть все 588 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot