def __contains__(self, k):
    return k.lower() in self._s

def __len__(self):
    return len(self._s)

def __iter__(self):
    return iter(self._s)

def __getitem__(self, k):
    return self._d[self._s[k.lower()]]

def actual_key_case(self, k):
    return self._s.get(k.lower())
Поиск по словарю без учета регистра с помощью Python