Функция, которая будет заменять в списке слова в предложении, на значения из словаря

Написать функцию 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)
→ Ссылка