Итак, сначала я скажу, что это проблема кода, над которой я работаю, параметры которой приведены ниже.
Итак, сначала напишите функцию с именем cover, которая принимает один параметр, набор тем.Пусть функция вернет список курсов из КУРСОВ, где поставленный набор и значение курса (также набор) перекрываются.Например, cover ({"Python"}) вернет ["Основы Python"].
Вот пример, который я извлекаю из содержимого вложенного набора для тем курса.
COURSES = {
"Python Basics": {"Python", "functions", "variables",
"booleans", "integers", "floats",
"arrays", "strings", "exceptions",
"conditions", "input", "loops"},
"Java Basics": {"Java", "strings", "variables",
"input", "exceptions", "integers",
"booleans", "loops"},
"PHP Basics": {"PHP", "variables", "conditions",
"integers", "floats", "strings",
"booleans", "HTML"},
"Ruby Basics": {"Ruby", "strings", "floats",
"integers", "conditions",
"functions", "input"}}
Теперь, поиск наборов диктов - довольно прямолинейное использование циклов for, но задача звучит так, как будто я хочу, чтобы я создал новый набор имен курсов, темы которых совпадали с входными данными аргументов и выходными данными.результат в виде списка.
def covers(topics):
hold_set = set()
for key in COURSES.keys():
if topics in COURSES[key]:
result = key
hold_set.add(result)
else:
continue
conversion = list(hold_set)
return conversion
Теперь моей первой проблемой было принятие переменного количества аргументов, я не очень знаком с * args / ** kwargs, поэтому мои попытки использовать их здесь в основном только что привели к функции печатидавая мне пустые списки.Другой создавал дополнительный ненужный набор для сравнения с новым, созданным после поиска подмножеств в dict, он казался излишним ненужным, так как hold_set уже содержит имена и сравнивал их с предполагаемым .intersection () перед преобразованиемрезультаты в список просто объединяют те же результаты с большим количеством работы.
Но я отступаю, прямо сейчас я предполагаю, что основной проблемой здесь является неспособность функций принимать переменное число аргументов, касающихся параметров поиска в теме (потому что при отправке запроса появляется сообщение «Не полученоправильный вывод из covers
. "), поэтому, если кто-нибудь сможет пролить свет на то, как я это сделаю, это очень ценится, так как через пару дней мой мозг начал кашлять, и я забрел читать о других областяхинформатика для распаковки.