Текст задания из LMS / источника
Повторения букв
Реализуйте функцию, которая принимает текст и возвращает словарь с подсчётом количества каждой буквы, игнорируя регистр.
text = "Programming is fun!"Пример вывода: {'p': 1, 'r': 2, ...}
Группировка студентов по классам
Создайте структуру для группировки студентов по классам и добавьте студентов в соответствующие группы.
students = [("class1", "Alice"), ("class2", "Bob"), ("class1", "Charlie"), ("class3", "Daisy")]Пример вывода: {'class1': ['Alice', 'Charlie'], 'class2': ['Bob'], 'class3': ['Daisy']}
Пошаговое решение
Повторения букв
from collections import Counter
def count_letters(text):
letters = [char.lower() for char in text if char.isalpha()]
return dict(Counter(letters))
print(count_letters("Programming is fun!"))isalpha() убирает пробелы и пунктуацию, lower() объединяет разные регистры.
Группировка по классам
from collections import defaultdict
def group_by_class(students):
result = defaultdict(list)
for class_name, student in students:
result[class_name].append(student)
return dict(result)
students = [("class1", "Alice"), ("class2", "Bob"), ("class1", "Charlie"), ("class3", "Daisy")]
print(group_by_class(students))defaultdict(list) создаёт список для нового класса автоматически.
Проверка в VS Code
- Создайте файл main.py и перенесите решение.
- Запустите python main.py в терминале.
- Сравните вывод с примером из задания.
- Проверьте крайние случаи: пустые коллекции, повторяющиеся значения и некорректные параметры.