Replacing English words in a string with their Spanish equivalents by dictionary lookup I want to improve my code's performance and running time, looking for write my loops better.

For example, I have a dictionary that contains words as keys, and their translation in Spanish as values.

{
    'Hello' : 'Hola',
    'Goodbye' : 'Adios',
    'Cheese' : 'Queso'
}


I also have a given English sentence, and I want to iterate over any word in my dict and replace it with the Spanish translation.
For this scenario I consider that up to one word could be exist in the given sentence.

I wrote a basic code that do that, but I am not sure that it is best practice:

words_list = {
        'Hello' : 'Hola',
        'Goodbye' : 'Adios',
        'Cheese' : 'Queso'
    }
sentence = "Hello, I want to talk Spanish"

for english_word in words_list.keys():
    if english_word in sentence:
        sentence = sentence.replace(english_word, words_list[english_word])
        break

print sentence


How can I write it better?
Problems

not properly handling words, just substrings. Currently, you are using str.replace() that would replace substrings in a string, not complete words, which means that it would behave incorrectly when your replacement is a part of another word - e.g. &quot;Cheese&quot; would be replaced from &quot;Cheesecake&quot; becoming &quot;Quesocake&quot;
just a single substring is replaced. you have that break statement which basically stops all the replacements after the first one occurred
handling words in different cases. You are also not properly handling the titled or upper-cased words