На предыдущих уроках мы изучили три основных типа коллекций в Python: списки (list), кортежи (tuple) и словари (dict). Теперь пора закрепить знания на практике, решая задачи, которые комбинируют все эти структуры данных.
В этом уроке мы решим разнообразные задачи на работу с коллекциями — от подсчёта частоты слов до управления данными студентов.
Дан список слов. Подсчитай, сколько раз встречается каждое слово, и выведи результат в виде словаря.
words = ["яблоко", "банан", "яблоко", "апельсин", "банан", "яблоко"]
# Создаём пустой словарь для подсчёта
word_count = {}
# Проходим по каждому слову
for word in words:
# Если слово уже есть в словаре, увеличиваем счётчик
if word in word_count:
word_count[word] += 1
# Если слова нет, добавляем его со значением 1
else:
word_count[word] = 1
print(word_count) # {'яблоко': 3, 'банан': 2, 'апельсин': 1}Дан список чисел. Найди все числа, которые встречаются более одного раза, и выведи их в виде списка.
numbers = [1, 2, 3, 2, 4, 3, 5, 2, 6]
# Подсчитываем частоту каждого числа
count = {}
for num in numbers:
count[num] = count.get(num, 0) + 1
# Находим дубликаты (числа, встречающиеся более одного раза)
duplicates
Дан список кортежей, где каждый кортеж содержит пару (ключ, значение). Преобразуй его в словарь.
pairs = [("name", "Иван"), ("age", 25), ("city", "Москва")]
# Создаём пустой словарь
result = {}
# Проходим по каждому кортежу
for key, value in pairs:
result[key] = value
print(result) # {'name': 'Иван', 'age': 25, 'city': 'Москва'}Реализуй простую телефонную книгу. Программа должна:
# Создаём словарь для хранения контактов
phone_book = {}
# Добавляем контакты
phone_book["Иван"] = "+7-999-123-45-67"
phone_book["Мария"] = "+7-999-234-56-78"
phone_book["Пётр"] = "+7-999-345-67-89"
# Ищем телефон по имени
name = "Мария"
if name in phone_book:
print(f"Телефон {name}: {phone_book[
Дан словарь, где ключ — имя студента, а значение — список оценок. Найди средний балл каждого студента.
grades = {
"Иван": [5, 4, 5, 5],
"Мария": [5, 5, 5, 4],
"Пётр": [4, 3, 4, 5]
}
# Создаём словарь для средних баллов
averages = {}
# Проходим по каждому студенту
for student
Дан список словарей, где каждый словарь содержит информацию о товаре. Найди самый дорогой товар.
products = [
{"name": "Яблоко", "price": 50},
{"name": "Банан", "price": 80},
{"name": "Апельсин", "price": 70}
]
# Инициализируем переменные для поиска максимума
max_price = 0
expensive_product = None
# Проходим по каждому товару
for product in
Дан список кортежей (имя, город). Сгруппируй людей по городам.
people = [
("Иван", "Москва"),
("Мария", "Санкт-Петербург"),
("Пётр", "Москва"),
("Анна", "Санкт-Петербург"),
("Сергей", "Москва")
]
# Создаём словарь для группировки
cities = {}
# Проходим по каждому человеку
for name, city in people
Даны два списка: список имён и список возрастов (в том же порядке). Создай словарь, где ключ — имя, а значение — возраст.
names = ["Иван", "Мария", "Пётр"]
ages = [25, 30, 28]
# Создаём словарь, используя индексы
people = {}
for i in range(len(names)):
people[names[i]] = ages[i]
print(people) # {'Иван': 25, 'Мария': 30, 'Пётр': 28}На этом уроке мы закрепили знания о коллекциях на практических задачах. Мы научились:
get() удобен для безопасного доступа к значениям словаря.zip() помогает объединять данные из разных списков.Напиши программу, которая:
Пример:
"привет"{'п': 1, 'р': 1, 'и': 1, 'в': 1, 'е': 1, 'т': 1}Напиши программу, которая:
Пример:
1 2 3 2 4 3 5[1, 4, 5]Дан словарь, где ключ — имя студента, а значение — список оценок.
Напиши программу, которая:
Пример:
{"Иван": [5, 4, 5], "Мария": [5, 5, 4]}{'Иван': 4.67, 'Мария': 4.67}Реализуй программу телефонной книги:
Пример:
{"Иван": "+7-999-123-45-67", "Мария": "+7-999-234-56-78"}"Мария"+7-999-234-56-78Дан список кортежей, где каждый кортеж содержит (название товара, категория).
Напиши программу, которая:
Пример:
[("Яблоко", "Фрукты"), ("Банан", "Фрукты"), ("Морковь", "Овощи")]{'Фрукты': ['Яблоко', 'Банан'], 'Овощи': ['Морковь']}Считай текст (несколько строк до пустой). Подсчитай частоту каждого слова (приведи к нижнему регистру, убери знаки препинания). Выведи 5 самых частых слов с их количеством.
Считай два слова. Определи, являются ли они анаграммами (одни те же буквы в разном порядке). Выведи "да" или "нет". Подсказка: отсортируй буквы каждого слова и сравни.