class SortedDict(dict):
def __new__(cls, *args, **kwargs):
instance = super(SortedDict, cls).__new__(cls, *args, **kwargs)
instance.keyOrder = []
return instance
def __setitem__(self, key, value):
super(SortedDict, self).__setitem__(key, value)#@1
if key not in self.keyOrder:#@2
self.keyOrder.append(key)
why make @2,why make a list ‘keyOrder’.
thanks
The SortedDict is “A dictionary that keeps its keys in the order in which they’re inserted.” (See: documentation).
Your @1 line is storing the key-value pair in the dictionary. The @2 stores the key in an internal list to maintain order.