在Jython中使用OrderedDict

时间:2015-02-10 17:26:43

标签: python iteration jython ordereddictionary

我正在尝试在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)

虽然这有效,但我仍然想知道如何使用字典。

1 个答案:

答案 0 :(得分:3)

如果您需要collections.OrderedDict,则必须使用Jython 2.7或更高版本,因为collections.OrderedDict未引入Python until version 2.7