小编典典

不区分大小写的字典

python

我希望我的字典不区分大小写。

我有以下示例代码:

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以大写字母开头)也给出相同的输出。

我相信有一种使用转换为小写字母的通用方法,
mydictionary[key.lower()]但是我不确定如何将其最好地集成到我的现有代码中。(如果无论如何这将是一种合理,简单的方法)。


阅读 229

收藏
2020-12-20

共1个答案

小编典典

如果我对您的理解正确,并且希望以一种不区分大小写的方式键入字典的键,则一种方法是将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())
2020-12-20