LinkedHashMap - это Java-реализация структуры данных, подобной Hashtable (dict в Python) с предсказуемым порядком итераций. Это означает, что во время обхода всех ключей они упорядочиваются путем вставки. Это делается с помощью дополнительного связанного списка, поддерживающего порядок вставки.
Есть ли эквивалент в Python?
Если вы используете Python 2.7 или Python> = 3.1, вы можете использовать collection.OrderedDict в стандартной библиотеке.
Этот ответ на вопрос Как вы извлекаете элементы из словаря в порядке их вставки? содержит реализацию упорядоченного слова, если вы не использует Python 3.x и не хочет зависеть от стороннего orderdict модуля .
Хотя вы можете сделать то же самое, поддерживая список для отслеживания порядка вставки, Python 2.7 и Python> = 3.1 имеют класс OrderedDict в модуле коллекций. 1005 *
До версии 2.7 вы можете создать подкласс dict , следуя этому рецепту .
dict
Я не уверен, что это то, что вы просите:
>>> dic = {1: 'one', 2: 'two'} >>> for k, v in dic.iteritems(): ... print k, v
вы можете заказать dic в порядке вставки, используя orderdict module.
d = ordereddict(dic, relax=True)
Я так не думаю; Вы должны будете использовать dict плюс список. Но вы можете довольно легко обернуть это в классе и определить keys, __getitem__, __setitem__ и т. Д., Чтобы он работал так, как вы хотите.
keys
__getitem__
__setitem__