Словари не упорядочены, поэтому нет порядка, который соответствовал бы порядку словаря (в нем его нет). Вы можете заметить это в том факте, что два словаря, указанные с одними и теми же ключами / значениями в разном порядке, считаются эквивалентными:
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 22:39:24) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> {'foo': True, 'bar': False} == {'bar': False, 'foo': True}
True
В вашем примере самым простым решением было бы просто инициализировать список в указанном порядке вы хотите, чтобы это было, так как все эти значения в любом случае жестко запрограммированы. В более сложном примере решением может быть либо использование OrderedDict
, либо использование dict в сочетании со списком, поддерживающим порядок.