Я пытаюсь использовать OrderedDict в Jython. Когда я пишу это на Python, все работает нормально; однако, когда я пробую тот же код с Jython, он выдает ошибку Java (я также сказал, что модуль коллекций не имеет атрибута OrderedDict). Ошибка модуля была следующая:
ERROR: Exception (main): 'module' object has no attribute 'OrderedDict'
Итак, что я пытаюсь сделать, это вывести значения словаря в том же порядке, в котором они были введены. Я хочу создать следующую функциональность (написанную на Python) в Jython:
import collections
example = collections.OrderedDict()
example["c"] = 3
example["b"] = 4
example["d"] = 3
example["e"] = 9
example["a"] = 7
for key, value in example.iteritems():
print key + ": " + str(value)
Это приведет к:
c: 3
b: 4
d: 3
e: 9
a: 7
Теперь я ПРЕДПОЛАГАЮ, что причина, по которой это не работает для меня в Jython, заключается в том, что в нем не существует OrderedDict. С учетом сказанного, есть ли способ сделать это в Jython? Может быть, для этого требуется код Java?
РЕДАКТИРОВАТЬ:
Я нашел способ сделать это, используя список и кортежи, например:
example = []
example.append(("c", 3))
example.append(("b", 4))
example.append(("d", 3))
example.append(("e", 9))
example.append(("a", 7))
for tup in example:
key, value = tup
print key + ": " + str(value)
Хотя это работает, я все же хотел бы знать, как это сделать со словарем.
AttributeError: 'module' object has no attribute 'OrderedDict'
- person davidrmcharles   schedule 10.02.2015