Найти - Пользователи
Полная версия: Dictionary, отменить сортировку?
Начало » Python для новичков » Dictionary, отменить сортировку?
1
Serpuh
Создаю словарь

dataProc = {“LoadImages”:“SUCCESS”}
dataProc.update({“ComputeFeatures”:“SUCCESS”})
dataProc.update({“ComputeMatches”:“SUCCESS”})
dataProc.update({“SFM”:“SUCCESS”})
dataProc.update({“GPS”:“SUCCESS”})

Но при добавлении элементов в отладчике видно что порядок слов меняется.

“LoadImages”: “SUCCESS”,
“ComputeMatches”: “SUCCESS”,
“SFM”: “SUCCESS”,
“ComputeFeatures”: “SUCCESS”,
“GPS”: “SUCCESS”

А мне нужно чтобы порядок следования слов не менялся. Словарь нужен для последующей распечатки в json для отслеживания pipeline скрипта.
Rodegast
Ну сколько раз можно писать что словарь сортировку не поддерживает!
Serpuh
Rodegast
Ну сколько раз можно писать что словарь сортировку не поддерживает!
Мне как раз нужно отсутствие сортировки, как добавлено, так и следует. А словарь почему-то сам слова переставляет.
JOHN_16
Serpuh
Вы н понимаете. Отсутствие сортировки как раз не дает никаких гарантий о том как элементы будут расположены.
То что вы хотите это OrderedDict в модуле collections
FishHook
Serpuh
Словарь нужен для последующей распечатки в json для отслеживания pipeline скрипта.
Да не нужен вам словарь. Скорее всего вам нужен список словарей.
Serpuh
JOHN_16
Отсутствие сортировки как раз не дает никаких гарантий о том как элементы будут расположены.
Понятно. Я сам с++сник, там если не передвинешь, само ничего не двигается.

JOHN_16
То что вы хотите это OrderedDict в модуле collections
Спасибо, то что нужно.

FishHook
Да не нужен вам словарь. Скорее всего вам нужен список словарей.
Не, его модуль json и распечатает как list словарей, а это не совсем что нужно.
py.user.next
Serpuh
Понятно. Я сам с++сник, там если не передвинешь, само ничего не двигается.
Аналог словаря питона в C++
http://en.cppreference.com/w/cpp/container/unordered_map

А вообще эта динамическая структура называется “нагруженное множество”. То есть это такое множество (тоже динамическая структура), в котором у каждого элемента есть нагрузка. А динамической она называется потому, что количество элементов может меняться после создания структуры.


  
>>> import json
>>> import collections
>>> 
>>> d = collections.OrderedDict((('a', 1), ('b', 2), ('c', 3)))
>>> 
>>> d
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
>>> 
>>> json.dumps(d)
'{"a": 1, "b": 2, "c": 3}'
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB