Python: получить ключи словаря в порядке добавления? - PullRequest
3 голосов
/ 30 марта 2012

В Python есть ли способ получить список ключей в том порядке, в котором были добавлены элементы?

String.compareMethods = {'equals': String.equals,
                         'contains': String.contains,
                         'startswith': String.startswith,
                         'endswith': String.endswith}

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

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

Я использую Python 2.6.x.

Ответы [ 2 ]

9 голосов
/ 30 марта 2012

Используйте collections.OrderedDict на Python 2.7+ или OrderedDict от PyPI для более старых версий Python. Вы должны иметь возможность установить его для Python 2.4-2.6 с pip install ordereddict или easy_install ordereddict.

Это подкласс dict, поэтому любой метод, который принимает dict, также примет OrderedDict.

2 голосов
/ 30 марта 2012

То, что вам нужно, называется OrderedDict .

from collections import OrderedDict

d = OrderedDict();
d['equals'] = String.equals
d['contains'] = String.contains
# ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...