Мне нужно сохранить порядок
параметр, я имею в виду, свойство приходит
сначала, потом маркируйте, пока я не получу
reouteDelay last.
Тогда вы просто делаете вещи в неправильном порядке - не нужно заказывать словари! Вместо этого попробуйте кортеж пар для кеша следующим образом:
def createNode(doc_, **param_):
cache = ( ('p', 'property'), , ('l', 'label'), ('td', 'totalDelay'),
('rd', 'routeDelay'), ('ld', 'logicDelay') )
for index, newIndex in cache:
if index not in param_:
continue
value = param_[index]
print newIndex, '=', value
Это имеет ту же семантику, что и ваша версия createNode
, плюс желаемое свойство поддержания желаемого вами порядка, и производительность по крайней мере так же хороша. Сосредоточившись на «поддержании порядка в словаре», вы сосредотачиваетесь на неправильной проблеме (как, увы, в большинстве случаев, когда люди обращаются к «упорядоченным словарям»! -).