Tutorial :What is the relationship between '@1' and '@2'



Question:

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


Solution:1

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.


Solution:2

Because this is a Sorted dict. Dictionaries normally are unsorted, so this implementation adds a keyOrder to record the order that items are added.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »