2014-09-21 52 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