10.21 Множества и словари
Множества
- Главное свойство множества — амортизированная константность доступа
- Теоретико-множественные операции
Посчитать, сколько гласных и сколько согласных в строке
string.html ? ☺
Задача_1:
- Подсчитать количество различных пар букв в тексте
- На вход подаётся строка, в которую могут входить: буквы, пробелы, а также любые другие символы
Буквой считается символ, на котором isalpha() возвращает True
Требуется подсчитать количество различных пар букв в тексте (заглавные и строчные буквы не считаются различными, поэтому строку сразу перевести в нижний регистр через lower())
Парой букв считаются расположенные рядом две буквы (примеры разных пар: аб, бб, wъ, щz)
Input:
аwба%Ба б7
Output:
3
Пары букв (выводить не надо): аw, wб, ба
Словари
- Основные свойства словарей, словари внутри python
В частности, eval()
Посчитать количество вхождений различных слов в тексте (слова разделены пробелами)
То же с помощью Counter
Убрать все повторяющиеся слова из текста (однострочник, слова разделены пробелами, используется фича словарей сохранять порядок добавления)
Input:
abc def abc qwert def
Output:
abc def qwert
Задача_2:
- Вводится сценарий, состоящий из строк двух видов:
- Определение функции от одной переменой:
:функция имя_переменной Python_выражение_с_этой_переменной
- Вызов функции:
функция константа
- Определение функции от одной переменой:
Последняя строка содержит quit c произвольным параметром
- Выражение не содержит пробельных символов
Написать интерпретатор, который бы выводил результаты вызовов функций. Вызов функции quit выводит количество определённых функций (включая саму quit) и завершает работу интерпретатора
Считается, что в интерпретаторе выполнен from math import *
- Имена функций и переменных состоят только из букв
Input:
:sin x sin(x) sin 1 :decorate s "--<<{}>>--".format(s) decorate "ЖЖЖ" sin 2 quit всё
Output:
0.8414709848078965 --<<ЖЖЖ>>-- 0.9092974268256817 3
- Вводится сценарий, состоящий из строк двух видов:
Задача_3:
- В первой строке вводится натуральное число W.
- Затем — многострочный текст, который оканчивается пустой строкой.
- Вывести отсортированно через пробел все самые популярные в этом тексте слова длиной W.
- Если таких нет, ничего не выводить.
Input:
5 cerebral atrophy, n: The phenomena which occurs as brain cells become weak and sick, and impair the brain's performance. An abundance of these "bad" cells can cause symptoms related to senility, apathy, depression, and overall poor academic performance. A certain small number of brain cells will deteriorate due to everday activity, but large amounts are weakened by intense mental effort and the assimilation of difficult concepts. Many college students become victims of this dread disorder due to poor habits such as overstudying. - cerebral darwinism, n: The theory that the effects of cerebral atrophy can be reversed through the purging action of heavy alcohol consumption. Large amounts of alcohol cause many brain cells to perish due to oxygen deprivation. Through the process of natural selection, the weak and sick brain cells will die first, leaving only the healthy cells. This wonderful process leaves the imbiber with a healthier, more vibrant brain, and increases mental capacity. Thus, the devastating effects of cerebral atrophy are reversed, and academic performance actually increases beyond previous levels.
Output:
brain cells
Д/З
- Доделать всё
Задача_2:
Переделать под произвольное количество переменных, включая ноль. Определение функции будет иметь вид :функция переменная_1 переменная_2 … выражение_без_пробелов
Параметр функции quit — форматная строка для двух параметров — количество определённых функций и количество обработанных строк
В примере семинара quit "{}:{}" должен выдать 3:6
- Написать тесты на функции с 0, 1,2 и 4 параметрами
Задача_3:
- Очистить текст от не-букв и не учитывать регистр при подсчёте