2014-09-21 53 views
0

我想创建一个有序字典,其中List作为值类型。有序词典以数值列表

我试图调用此方法:

ordered = collections.OrderedDict(list) 

,但我得到的错误:

TypeError: 'type' object is not iterable 

是否有任何其他的数据结构,我可以用一个有序字典?

在程序的后面我需要获取插入的第一个键/值对;这就是为什么我需要订购清单。之后点顺序并不重要。

+0

您对'defaultdict'与OrderedDict'一起使用的方式感到困惑。你不会给“OrderedDict”一个工厂函数,你会像构造一个普通字典一样构造一个OrderedDict,但是插入顺序被保留。 – dawg 2014-09-21 16:53:17

+2

我不确定这是否是混乱。看起来更像是OP认为给OrderedDict构造函数的'list'就像是一个类型注释,声明了值的类型。我不认为OP意味着'list'作为被调用的构造函数或类似的东西。 – ely 2014-09-21 16:55:13

回答

2

Python是动态类型的。您无需事先指定值类型,只需在需要时插入该类型的对象即可。

例如:

ordered = collections.OrderedDict() 
ordered[123] = [1,2,3] 

您可以与next(ordered.iteritems())(Python的2)或next(ordered.items())(Python的3)得到的第一个插入的键/值。

+0

我可以使用ordered.items()[0]吗? – user3264659 2014-09-22 00:13:42

+0

@ user3264659只有在Python 2中,对于大型字典来说它会比较慢。 – interjay 2014-09-22 08:36:12