10.18 Множества и словари
FIXME: вариант занятия от 18.10 занял меньше часа. Надо добавить пару упражненек (UPD 2023: если пару, то не самых простых; демки расписать и падаванок добавить).
Множества
- Главное свойство множества — амортизированная константность доступа и
Теоретико-множественные операции
Посчитать, сколько уникальных гласных и сколько уникальных согласных в строке; считать только строчные латинские буквы
Словари
- Основные свойства словарей
Посчитать количество вхождений каждого уникального слова в тексте (слова разделены пробелами) с помощью dict
То же с помощью Counter
Убрать все повторяющиеся слова из текста (однострочник, слова разделены пробелами, используется фича словарей сохранять порядок добавления)
Input:
abc def abc qwert def
Output:
abc def qwert
- Словари внутри python
globals()
eval() / exec()
Ввести строку вида выражение с переменными x и y; затем ввести два числа, a и b. Вычислить выражение и вывести результат дважды, сначала при x=a и y=b, а затем при x=b и y=a, пользуясь пространством имён eval().
Input:
x*2+y 3, 4
Output:
10 11
Д/З
Добиться работоспособности всех имеющихся домашних заданий в pyjudge.
Задача_1:
- Подсчитать количество различных пар букв в тексте
- На вход подаётся строка, в которую могут входить: буквы, пробелы, а также любые другие символы
Буквой считается символ, на котором isalpha() возвращает True
Требуется подсчитать количество различных пар букв в тексте (заглавные и строчные буквы не считаются различными, поэтому строку сразу перевести в нижний регистр через lower())
Парой букв считаются расположенные рядом две буквы (примеры разных пар: аб, бб, wъ, щz)
Input:
аwба%Ба б7
Output:
3
Пары букв (выводить не надо): аw, wб, ба
Задача_2:
- Вводится сценарий, состоящий из строк двух видов:
- Определение функции от произвольного количества переменных, включая ноль:
:функция переменная_1 переменная_2 … Питоновское_выражение_без_пробелов_от_этих_переменных
- Вызов функции:
функция константа_1 константа_2 …
- Определение функции от произвольного количества переменных, включая ноль:
- Выражение не содержит пробельных символов
Последняя строка содержит quit - вызов предопределенной функции, параметр которой - форматная строка для двух параметров: количество определённых функций и количество обработанных строк
- Написать интерпретатор, который бы выводил результаты вызовов функций.
Вызов функции quit выводит (в заданном формате) количество определённых функций (включая саму quit), количество обработанных строк, и завершает работу интерпретатора
Например, quit "{}:{}" может выдать 3:6
Считается, что в интерпретаторе выполнен from math import *
- Имена функций и переменных состоят только из букв
- Написать тесты на функции с 0, 1, 2 и 4 параметрами
Input:
:sin x sin(x) sin 1 :decorate s "--<<{}>>--".format(s) decorate "ЖЖЖ" sin 2 quit "{}, {}"
Output:
0.8414709848078965 --<<ЖЖЖ>>-- 0.9092974268256817 3, 6
- Вводится сценарий, состоящий из строк двух видов:
Задача_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