# -*- coding: utf-8 -*-classSuperTupl(tuple):defto_lis(self):returnlist(self)defto_dic(self, set_key=0):
a ={str(val[set_key]): val for val in self}return SuperDic(**a)classSuperDic(dict):defclean(self, key):"""
d = SuperDic(a=1,b=2,c=3)
print(d.clean('a').clean('b'))
:param key: the key will be deleted
:return: dict without the key
"""
self.pop(key)return self
defremove_item(self, item):"""
d = SuperDic(a=1,b=2,c=3)
print(d.remove_item({'a':1,'b':2}))
:param key: the key will be deleted
:return: dict without the key
"""ifisinstance(item,dict):for k, v in item.items():if self[k]== v:
self.pop(k)return self
defto_tuple(self):return SuperTupl((k, v)for k, v in self.items())def__repr__(self):ifisinstance(self,dict):
_d =''for k, v in self.items():
_d +='\''+str(k)+'\''+':'+str(v)+', 'return'{'+ _d.rstrip(', ')+'}'elifisinstance(self,tuple):
_t =''for t in self:
_t +='('+str(t)+')'return'('+_t+')'