我正在尝试在Jython中使用OrderedDict。当我用Python编写它时,它工作正常;但是,当我使用Jython尝试相同的代码时,它会产生Java错误(我也曾说过,collections模块没有属性OrderedDict)。模块错误如下:
ERROR: Exception (main): 'module' object has no attribute 'OrderedDict'
所以我要做的是按照放入它们的顺序输出字典的值。我想在Jython中创建以下功能(用Python编写):
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)
虽然这有效,但我仍然想知道如何使用字典。
答案 0 :(得分:3)
如果您需要collections.OrderedDict
,则必须使用Jython 2.7或更高版本,因为collections.OrderedDict
未引入Python until version 2.7。