Доступ к словарю как к списку

у меня есть источник данных, который лучше всего смоделировать с помощью словаря (это набор пара ключ = значение ). Для конкретной цели визуализации мне нужно предоставить интерфейс доступа к данным в виде списка (в дополнение к обычному интерфейсу словаря), что означает, что вы должны иметь возможность делать следующее:

data["mykey"] # returns the associated value
data[12][0] # returns the 13th key in the dictionary
data[12][1] # returns the 13th value in the dictionary

Я не могу найти подходящую реализацию фасада - если я сохраню индексы в качестве словарного ключа:

data[12] = ("mykey", "myval")

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

data["mykey"] = "myval"

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

Обратите внимание, что все эти реализации предполагают, что я использую OrderedDict .

Как бы вы предоставили оба интерфейса?

Если вам интересно, это для создания PyQt QAbstractTableModel , где нижний Контейнер данных ying - это словарь.

Спасибо.

5
задан Escualo 22 June 2011 в 02:34
поделиться