不区分大小写字符串作为key的字典

问题:一个字典中的key是字符串,有多个来源,希望将他们不区分大小写作为同一个key。如果在入字典之前统一转换大小写则需要改动的地方比较多,因此派生一个UserDict类,只改动一处即可。

>>> import UserDict
>>> class MyDict(UserDict.UserDict):
	def __getitem__(self, key):
		return self.data[key.upper()]
	def __setitem__(self, key, item):
		self.data[key.upper()] = item

		
>>> d = MyDict()
>>> d['albert'] = 26
>>> d
{'ALBERT': 26}
>>> d['ALBert'] = 26
>>> d
{'ALBERT': 26}
>>> d['albert']
26
>>> d['ALBERT']
26
>>>