Есть список игрушек, некоторые из которых имеются в N детских садах. Определить игрушки из списка: • которых нет ни в одном из детсадов; • которые есть в каждом из детсадов. Python
from collections import defaultdict def find_toys(kindergartens): toys_count = defaultdict(int) for kindergarten in kindergartens: for toy in kindergarten: toys_count[toy] += 1 not_in_any_kindergarten = [toy for toy, count in toys_count.items() if count == 0] in_every_kindergarten = [toy for toy in toys_count if toys_count[toy] == len(kindergartens)] return not_in_any_kindergarten, in_every_kindergarten # Пример данных kindergartens = [ ["ball", "doll", "blocks"], ["doll", "train", "blocks"], ["ball", "puzzle", "blocks"] ] not_in_any, in_every = find_toys(kindergartens) print("Игрушки, которых нет ни в одном детсаду:", not_in_any) print("Игркушки, которые есть в каждом детсаду:", in_every)
Этот код создает функцию find_toys, которая принимает список списков kindergartens, где каждый внутренний список представляет игрушки в детском саду. Функция затем перебирает каждый список и подсчитывает количество игрушек с использованием словаря toys_count.
Затем функция находит игрушки, которых нет ни в одном детском саду (счетчик равен 0) и игрушки, которые есть в каждом детском саду (счетчик равен количеству детских садов).
Наконец, пример данных задается с тремя детскими садами и выводятся игрушки, которых нет ни в одном детском саду и игрушки, которые есть в каждом детском саду.
def find_toys(kindergartens):
toys_count = defaultdict(int)
for kindergarten in kindergartens:
for toy in kindergarten:
toys_count[toy] += 1
not_in_any_kindergarten = [toy for toy, count in toys_count.items() if count == 0]
in_every_kindergarten = [toy for toy in toys_count if toys_count[toy] == len(kindergartens)]
return not_in_any_kindergarten, in_every_kindergarten
# Пример данных
kindergartens = [
["ball", "doll", "blocks"],
["doll", "train", "blocks"],
["ball", "puzzle", "blocks"]
]
not_in_any, in_every = find_toys(kindergartens)
print("Игрушки, которых нет ни в одном детсаду:", not_in_any)
print("Игркушки, которые есть в каждом детсаду:", in_every)
Этот код создает функцию find_toys, которая принимает список списков kindergartens, где каждый внутренний список представляет игрушки в детском саду. Функция затем перебирает каждый список и подсчитывает количество игрушек с использованием словаря toys_count.
Затем функция находит игрушки, которых нет ни в одном детском саду (счетчик равен 0) и игрушки, которые есть в каждом детском саду (счетчик равен количеству детских садов).
Наконец, пример данных задается с тремя детскими садами и выводятся игрушки, которых нет ни в одном детском саду и игрушки, которые есть в каждом детском саду.