Мне тяжело писать класс, который должен иметь возможность выполнять итерацию через отсортированный dicitonary. Моя основная проблема заключается в перегрузке. Я не собираюсь сортировать дик.Как сделать отсортированный класс словаря?
class SortedDict():
def __init__(self, dic = None):
self.dic = {}
if len(dic) > 0: self.dic = dic;
def __iter__(self):
self.dic = sorted(self.dic.keys())
self.index = 0
return self
def next(self):
if self.index+1 < len(self.dic):
self.index += 1
return self.dic.keys()[self.index]
ли вы * необходимости * создать это самостоятельно, или вы могли бы использовать [ 'collections.OrderedDict'] (http://docs.python.org/2/ библиотека/collections.html # ordereddict-объекты)? – jonrsharpe
Вы переписываете словарь с отсортированным списком его ключей, поэтому вы теряете значения. – chepner
Мне нужно сделать это самостоятельно – Saphire