2015-09-27 3 views
-1

Я хотел отправить словарь в свой набор движков в параллельном python (ipython).Изменение порядка ключей в словаре python при отправке в движки

from IPython.parallel import Client, interactive 
rc = Client() 
dv = rc[:] 
dv.push(dict(mydict = mydict)) 

Удивительно, ключи не упорядочены одинаково (все двигатели dict, но этот порядок отличается от основного). Любой простой способ исправить это? (OrderedDict кажется мне весьма ограничительным, и я не уверен, что это будет актуально)

ответ

0

Python словари не упорядочены. Если вы хотите, чтобы они были, вы должны либо использовать OrderedDict, либо просто сделать sorted(mydict), чтобы отсортировать ключи при необходимости.

+0

Я знаю, что они не упорядочены, но порядок не случайный и не изменяется, если словарь не изменяется (очевидно). Я отправляю словарь в двигатели и ожидал, что порядок будет сохранен (порядок во всех двигателях одинаковый). –

+0

Они не заказаны. У них нет заказов. Не ждите заказа из неупорядоченного контейнера. Не «тот же» порядок, не восходящий или нисходящий. Никакого заказа. –

+0

то почему, при определении двух словарей с теми же ключами, итерация через ключи будет одинаковой? Разве это не точное определение порядка? –