5. Структуры данных
Структуры данных — это важный элемент программирования, требуемый для написания более сложных программ. В этом материале будут примеры, которые наглядно продемонстрируют особенности структур данных, объяснят примеры присваивания и инициализации.
Инициализировать список, кортеж и словарь можно несколькими способами. Один из наиболее распространенных — присвоить соответствующие символы переменной. Для списка эти символы — [] , для кортежа — () , а для словаря — <> . Если присвоить эти символы без значений внутри, то будут созданы соответствующие пустые структуры данных.
Функции, которые будут использоваться дальше, являются альтернативными способами создания списков, кортежей и словарей. Их необязательно знать, но лучше запомнить, ведь они могут встретиться в коде других разработчиков.
Где используется
Структуры данных используются во всех аспектах программирования.
- Списки: содержат значения. Ими могут быть числа, строки, имена и так далее:
- Модели автомобилей;
- Имена собак;
- Посещенные страны;
- Посетители магазина и так далее;
- Все месяцы года;
- Дисциплины Олимпийских игр;
- Штаты США;
Важно только отметить, что кортежи не являются вообще неизменяемыми, ведь вы всегда можете переписать код, поменяв или удалив определенные значения. Речь идет о том, что значения не могут быть изменены после создания — во время работы программы.
- Словари — это пары из ключа и значения. Словари также являются изменяемыми. Это удобная структура данных, которая подходит для сохранения значения с определенными дополнительными параметрами, например:
- Данные клиента включая список его покупок
- Названия стран + их количество олимпийских медалей
- Автомобильные бренды и их модели
- Страны с количеством ДТП с летальным исходом
Рекомендации по работе со структурами данных
- List(), dict() и float() используют круглые скобки, потому что они являются функциями;
- Скобки сами по себе представляют кортеж, и их не стоит путать со скобками в функциях, например, list();
- При создании пустого списка нужно использовать квадратные, а не круглые скобки: [] .
Функция №1: list()
У функции list() очень простой сценарий применения.
C помощью скобок создается список. После этого выводится переменная с присвоенным ей пустым списком. Выводится «[]», что указывает пусть и на пустой, но список. После этого выводится подтверждение того, что это действительно список.
Python: структуры данных — упражнения, практика, решение
1. Напишите программу на Python для создания объекта Enum и отображения имени и значения члена. Перейти к редактору
Пример данных :
Афганистан = 93
Албания = 355
Алжир = 213
Андорра = 376
Ангола = 244
Антарктида = 672
Ожидаемый результат:
Имя участника: Албания
Значение члена: 355
Нажмите меня, чтобы увидеть образец решения2. Напишите программу на Python для перебора класса enum и отображения отдельного члена и его значения. Перейти к редактору
Ожидаемый результат:
Афганистан = 93
Албания = 355
Алжир = 213
Андорра = 376
Ангола = 244
Антарктида = 672
Нажмите меня, чтобы увидеть образец решения3. Напишите программу на Python для отображения всех имен членов перечислимого класса в порядке их значений. Перейти к редактору
Ожидаемый результат:
Название страны упорядочено по коду страны:
Афганистан
Алжир
Ангола
Албания
андорра
Антарктида
Нажмите меня, чтобы увидеть образец решения4. Напишите программу на Python, чтобы получить все значения из класса enum. Перейти к редактору
Ожидаемый результат:
[93, 355, 213, 376, 244, 672]
Нажмите меня, чтобы увидеть образец решения5. Напишите программу на Python для подсчета наиболее распространенных слов в словаре. Перейти к редактору
Ожидаемый результат:
[(«розовый», 6), («черный», 5), («белый», 5), («красный», 4)]
Нажмите меня, чтобы увидеть образец решения6. Напишите программу на Python, чтобы найти номер класса мудрого броска из набора кортежей. Перейти к редактору
Ожидаемый результат:
defaultdict ( , )
Нажмите меня, чтобы увидеть образец решения7. Напишите программу на Python для подсчета количества учеников отдельного класса. Перейти к редактору
Пример данных:
классы = (
(«V», 1),
(«VI», 1),
(«V», 2),
(«VI», 2),
(«VI», 3),
(«VII», 1),
)
Ожидаемый результат:
Счетчик ()
Нажмите меня, чтобы увидеть образец решения8. Напишите программу на Python, чтобы получить уникальные значения перечисления. Перейти к редактору
Ожидаемый результат:
Афганистан = 93
Албания = 355
Алжир = 213
Андорра = 376
Ангола = 244
Нажмите меня, чтобы увидеть образец решения9. Напишите программу на Python для создания экземпляра OrderedDict с использованием заданного словаря. Сортируйте словарь во время создания и печатайте элементы словаря в обратном порядке. Перейти к редактору
Ожидаемый результат:
Ангола 244
Андорра 376
Алжир 213
Афганистан 93
Албания 355
В обратном порядке:
Албания 355
Афганистан 93
Алжир 213
Андорра 376
Ангола 244
Нажмите меня, чтобы увидеть образец решения10. Напишите программу на Python, чтобы сгруппировать последовательность пар ключ-значение в словарь списков. Перейти к редактору
Ожидаемый результат:
[(‘v’, [1, 3]), (‘vi’, [2, 4]), (‘vii’, [1])]
Нажмите меня, чтобы увидеть образец решения11. Напишите программу на Python для сравнения двух неупорядоченных списков (не наборов). Перейти к редактору
Ожидаемый результат: Ложь
Нажмите меня, чтобы увидеть образец решения12. Напишите программу на Python для создания массива, содержащего шесть целых чисел. Также выведите все элементы массива. Перейти к редактору
Ожидаемый результат:
10
20
30
40
50
Нажмите меня, чтобы увидеть образец решения13. Напишите программу на Python, чтобы получить размер массива типов unsigned integer и float. Перейти к редактору
Ожидаемый результат:
4
4
Нажмите меня, чтобы увидеть образец решения14. Напишите программу на Python для получения информации о буфере массива. Перейти к редактору
Ожидаемый результат:
Начальный адрес буфера массива в памяти и количество элементов.
(25855056, 2)
Нажмите меня, чтобы увидеть образец решения15. Напишите программу на Python, чтобы получить длину массива. Перейти к редактору
Ожидаемый результат:
Длина массива составляет:
5
Нажмите меня, чтобы увидеть образец решения16. Напишите программу на Python для преобразования массива в обычный список с теми же элементами. Перейти к редактору
Ожидаемый результат:
Исходный массив:
массив (‘b’, [1, 2, 3, 4])
Массив к списку:
[1, 2, 3, 4]
Нажмите меня, чтобы увидеть образец решения17. Напишите программу на Python для преобразования массива в массив машинных значений и возврата байтового представления. Перейти к редактору
Ожидаемый результат:
Исходный массив:
A1: массив (‘i’, [1, 2, 3, 4, 5, 6])
Массив байтов: b’010000000200000003000000040000000500000006000000 ‘
Нажмите меня, чтобы увидеть образец решения18. Напишите программу на Python для чтения строки и интерпретации строки как массива машинных значений. Перейти к редактору
Ожидаемый результат:
массив1: массив (‘i’, [7, 8, 9, 10])
Байты: b’0700000008000000090000000a000000 ‘
массив2: массив (‘i’, [7, 8, 9, 10])
Нажмите меня, чтобы увидеть образец решения19. Напишите программу на Python для вставки трех элементов в кучу и распечатки элементов из кучи. Перейти к редактору
Ожидаемый результат:
(‘V’, 1)
(«V», 2)
(«V», 3)
Нажмите меня, чтобы увидеть образец решения20. Напишите программу на Python, чтобы поместить три элемента в кучу и вернуть самый маленький элемент из кучи. Также поп и вернуть самый маленький предмет из кучи. Перейти к редактору
Ожидаемый результат:
Предметы в куче:
(‘V’, 1)
(«V», 3)
(«V», 2)
———————-
Самый маленький предмет в куче:
(‘V’, 1)
———————-
Поместите наименьший предмет в кучу:
(«V», 2)
(«V», 3)
Нажмите меня, чтобы увидеть образец решения21. Напишите программу на Python, чтобы поместить элемент в кучу, затем вытолкнуть и вернуть наименьший элемент из кучи. Перейти к редактору
Ожидаемый результат:
Предметы в куче:
(‘V’, 1)
(«V», 3)
(«V», 2)
———————-
Используя heappushpop, нажмите на элемент в куче и верните самый маленький элемент.
(«V», 2)
(«V», 3)
(«V», 6)
Нажмите меня, чтобы увидеть образец решения22. Напишите программу на Python для создания heapsort, помещая все значения в кучу, а затем выталкивая наименьшие значения по одному. Перейти к редактору
Ожидаемый результат:
[10, 20, 20, 40, 50, 50, 60, 70, 80, 90, 100]
Нажмите меня, чтобы увидеть образец решения23. Напишите программу на Python, чтобы получить два самых больших и три самых маленьких элемента из набора данных. Перейти к редактору
Ожидаемый результат:
[100, 90]
[10, 20, 20]
Нажмите меня, чтобы увидеть образец решения24. Напишите программу на Python, чтобы найти левую точку вставки для указанного значения в отсортированном порядке. Перейти к редактору
Ожидаемый результат:
4
2
Нажмите меня, чтобы увидеть образец решения25. Напишите программу на Python, чтобы найти правильную точку вставки для указанного значения в отсортированном порядке. Перейти к редактору
Ожидаемый результат:
3
2
Нажмите меня, чтобы увидеть образец решения26. Напишите программу на Python для вставки элементов в список в отсортированном порядке. Перейти к редактору
Ожидаемый результат:
Оригинальный список:
[25, 45, 36, 47, 69, 48, 68, 78, 14, 36]
Сортированный список:
[14, 25, 36, 36, 45, 47, 48, 68, 69, 78]
Нажмите меня, чтобы увидеть образец решения27. Python-программа для создания очереди и отображения всех членов и размера очереди. Перейти к редактору
Ожидаемый результат:
Члены очереди:
0 1 2 3
Размер очереди:
4
Нажмите меня, чтобы увидеть образец решения28. Напишите программу на Python, чтобы определить, пуста очередь или нет. Перейти к редактору
Ожидаемый результат:
Правда
Ложь
Нажмите меня, чтобы увидеть образец решения29. Напишите программу на Python для создания очереди FIFO. Перейти к редактору
Ожидаемый результат:
0 1 2 3
Нажмите меня, чтобы увидеть образец решения30. Напишите программу на Python для создания очереди LIFO. Перейти к редактору
Ожидаемый результат:
3 2 1 0
Нажмите меня, чтобы увидеть образец решенияРедактор кода Python:
Еще не все !
Не отправляйте решение вышеупомянутых упражнений здесь, если вы хотите внести вклад, перейдите на соответствующую страницу упражнения.