Найти в Дзене
В Дзене применяются
рекомендательные технологии
Old Programmer

Программирование на Python. Типичные приемы (множества и словари). Статья 1

Оглавление

Все ссылки на статьи и ролики моего канала Old Programmer:
Программирование. Тематическое оглавление моего Zen-канала (Old Programmer). А здесь все ссылки на мои материалы о Python.

Список разделов канала Old Programmer, канала о программировании и программистах
Old Programmer27 мая 2021

Читаем мои статьи и подписываемся на мой канал:

Из записок старого программиста. Как я начал программировать
Old Programmer26 июля 2020
Рекурсия в программировании (Python). Статья 4
Old Programmer26 июля 2020
Объектно-ориентированное программирование (C++). Статья 2 (конструкторы и деструкторы)
Old Programmer27 июля 2020
Объектно-ориентированное программирование (язык Python). Статья 3
Old Programmer28 июля 2020
Postgres. Пишем запросы на SQL (оконные функции). Статья 5
Old Programmer29 июля 2020

Сегодня просто поиграем на Python'е. Поиграем, в смысле, будем решать одну задачку разными способами. Что значит вы владеете русским языком или любым другим языком? Это значит вы легко выразите одну и туже мысль несколькими способами. То же самое и в программировании. Сложившийся программист (именно сложившийся, а не профессиональный или настоящий) может легко один и тот же фрагмент программы или целый алгоритм написать несколькими способами, меняя или сам алгоритм или средства его реализации - по другому выражая одну и ту же мысль.

Решение на Python с использованием множества

Сегодня рассмотрю очень простую задачу программирования, решение которой для большинства программирующих не должно составлять особой сложности. Мне важно показать два подхода: с использованием множеств и с использованием словарей. Представим себе, что есть строка, произвольной длины, ну допустим, состоящая только из цифр (хотя это и не принципиально). Нужно посчитать сколько раз встречается в строке каждая цифра и вывести на консоль в упорядоченном виде, так:

0 - 4
1 - 2
2 - 2
3 - 4
4 - 4
5 - 5
6 - 4
7 - 3
8 - 5
9 - 2

Рассмотрим первую программу. Она написана с использованием такой структуры, как множество. Очень мощное средство, скажу я вам. Структура которая может состоять из произвольного количества подобных элементов. Что очень важно - все элементы различны. Это значит, что если мы какой-то набор данных переводим в множество (с помощью функции set()), то автоматически удаляются дубли. К множеству можно применять обычный способ перебора в цикле for, как для любого другого набора в языке Python. Смотрим программу 30.py. Множество позволяет нам сразу определить все символы строки, исключив повторения. Обратите также внимание на функцию sorted(), которая сразу на лету позволяет сортировать набор.

Решение на Python с использованием словаря

Следующая программа (30a.py) делает ровным счетом то же, что и 30.py, но использует механизм словарей. Словарь, проще говоря, является массивом, а индексом в нем служит строка (ключ) или другой неизменяемый тип данных. Мощь словаря заключается в том, что элементами словаря могут являться другие структуры (в том числе и другие словари). Словарь часто используют вот как раз в контексте того, сколько раз встречается в структуре тот или иной элемент. Этот алгоритм показан в программе 30a.py. Обратите внимание на функцию dict(), с помощью которой создается пустой словарь.

Вот и все, пока! Подписывайтесь на мой канал Old Programmer.

Программа вычисления количества встречающихся элементов в строке
Программа вычисления количества встречающихся элементов в строке

Рекомендуем почитать