Изменить ключ в OrderedDict без потери порядка Начиная с OrderedDict([('a', 1), ('c', 3), ('b', 2)]) можно ли положить OrderedDict([('a', 1), ('__C__', 3), ('b', 2)]) убедитесь, что элемент '__C__' находится перед 'b' и после 'a' т.е. сохраняя порядок? Ответ 1 Вы можете попробовать: >>> d = OrderedDict([('a', 1), ('c', 3), ('b', 2)]) >>> d OrderedDict([('a', 1), ('c', 3), ('b', 2)]) >>> d2 = OrderedDict([('__C__', v) if k == 'c' else (k, v) for k, v in d.items()]) >>> d2 OrderedDict([('a', 1), ('__C__', 3), ('b', 2)]) Ответ 2 если вы хотите изменить текущий объект словаря change_key(dict, old, new): for i in range(len(dict)): k,v = self.popitem(False) self[new if old == k else k] = v
Ответ 1 Вы можете попробовать: >>> d = OrderedDict([('a', 1), ('c', 3), ('b', 2)]) >>> d OrderedDict([('a', 1), ('c', 3), ('b', 2)]) >>> d2 = OrderedDict([('__C__', v) if k == 'c' else (k, v) for k, v in d.items()]) >>> d2 OrderedDict([('a', 1), ('__C__', 3), ('b', 2)])
Ответ 2 если вы хотите изменить текущий объект словаря change_key(dict, old, new): for i in range(len(dict)): k,v = self.popitem(False) self[new if old == k else k] = v