Функция, которая будет заменять в списке слова в предложении, на значения из словаря
Написать функцию translate(s,D), принимающую на вход строку s, состоящую из слов, разделенных пробелами (любые два соседние слова разделены ровно одним пробелом), и словарь D, ключами которого являются слова и значениями тоже слова. Считая, что словарь D задаёт правила перевода слов с одного языка на другой, перевести строчку s пословно. Слова, которых нет в словаре, не менять. Пример: пусть
s = "hello this is a test hello"
D = {"hello":"privet","this":"eto","test":"proverka"}
тогда translate(s,D) должна вернуть строчку "privet eto is a proverka privet".
Я написал следующий код:
def translate(s, D):
new_list = []
for i in s.split():
if i in D.keys():
i = D.get(i)
else:
i = i
new_list.append(i)
return " ".join(new_list)
Он не совсем верно работает, так как в проверке указано выводить вот что:
assert translate("hello this is a test hello", {"hello":"privet","this":"eto","test":"proverka"}) == "privet eto is a proverka privet"
assert translate("this is is this", {"this":"is", "is":"this"})=="is this this is"
assert translate("Well done, well done", {"well": "nice"}) == "Well done, nice done"
assert translate("Okay let us test you", {}) == "Okay let us test you"
assert translate("",{"this":"is"}) == ""
Помогите пожалуйста привести код в соответствие с проверкой, уже совсем нет идей.
Благодарю.
Ответы (1 шт):
Автор решения: Andrey RF
→ Ссылка
def translate(not_translated, dictionary):
translated = list()
for key in not_translated.split():
translated.append(dictionary[key])
return " ".join(translated)