change key in OrderedDict without losing order
ordereddictionary, python
Solution
You could try:
>>> 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)])
Problem
Starting with ``` OrderedDict([('a', 1), ('c', 3), ('b', 2)]) ``` is it possible to end up with ``` OrderedDict([('a', 1), ('__C__', 3), ('b', 2)]) ``` making sure that the `'__C__'` item is before `'b'` and after `'a'` i.e. keeping order?