class ZipperMap(dict):
def __setitem__(self,key,value):
if not self.has_key(key):
super(ZipperMap, self).__setitem__(key,[value])
else:
self[key].append(value)
if __name__=='__main__':
m=ZipperMap()
m[1]=2
m[1]=3
print m[1]
输出[2,3]
重写setitem方法 ,如果为第一次赋值 则初始化一个列表,否则则append到得到的列表中去