2015-02-10 109 views
1

我试图在Jython中使用OrderedDict。当我用Python编写它时,它工作正常;然而,当我用Jython尝试相同的代码时,它给出了一个Java错误(我也曾说过集合模块没有OrderedDict属性)。该模块的错误如下:。在Jython中使用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) 

虽然这个作品,我还是想知道如何使用它做一本字典。

+0

你的问题应该包括你看到的错误。我猜你看到了这样的东西:'AttributeError:'模块'对象没有任何属性'OrderedDict'' – 2015-02-10 18:41:57

+0

正确,对不起 - 添加它 – user2869231 2015-02-10 18:49:22

回答

3

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

+1

嗯。那么,我使用Sikuli(使用Jython),显然它是摇摆jython-2.1 .......... – user2869231 2015-02-10 18:55:19