Słownik niewrażliwy na wielkość liter

Chciałbym, aby mój słownik nie uwzględniał wielkości liter.

Mam ten przykładowy kod:

text = "practice changing the color"

words = {'color': 'colour',
        'practice': 'practise'}

def replace(words,text):

    keys = words.keys()

    for i in keys:
        text= text.replace(i ,words[i])
    return  text

text = replace(words,text)

print text

Wyjście = ćwicz zmianę koloru

Chciałbym inny ciąg,"practice changing the Color", (gdzieColor zaczyna się od kapitału), aby dać ten sam wynik.

Uważam, że istnieje ogólny sposób konwersji na małe literymydictionary[key.lower()] ale nie jestem pewien, jak najlepiej zintegrować to z moim istniejącym kodem. (Jeśli i tak byłoby to rozsądne, proste podejście).

questionAnswers(9)

yourAnswerToTheQuestion