我希望我的字典不区分大小写。
我有以下示例代码:
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
输出=练习更改颜色
我想要另一个字符串,"practice changing the Color"(Color以大写字母开头)也给出相同的输出。
"practice changing the Color"
Color
我相信有一种使用转换为小写字母的通用方法, mydictionary[key.lower()]但是我不确定如何将其最好地集成到我的现有代码中。(如果无论如何这将是一种合理,简单的方法)。
mydictionary[key.lower()]
如果我对您的理解正确,并且希望以一种不区分大小写的方式键入字典的键,则一种方法是将dict子类化并重载setter / getter:
class CaseInsensitiveDict(dict): def __setitem__(self, key, value): super(CaseInsensitiveDict, self).__setitem__(key.lower(), value) def __getitem__(self, key): return super(CaseInsensitiveDict, self).__getitem__(key.lower())