2013-11-01 169 views
1

我需要幫助合併兩個字典。我可以合併它們,但問題是我需要兩本字典來維護它們的順序。在Python中合併兩個字典

對於expample:

x = {'a':1, 'b': 2} 
y = {'b':10, 'c': 11} 
z = dict(x.items() + y.items()) 
print z 

{ 'A':1, 'C':11, 'B':10}

這個輸出是一個問題。我需要輸出爲:{'a':1, 'b':10, 'c': 11} 必須保留字母的順序。

+4

字典不受限制。你想要的是無法實現的。 –

+0

爲什麼downvotes? –

+0

可能重複的[爲什麼是python排序我的字典是這樣嗎?](http://stackoverflow.com/questions/526125/why-is-python-ordering-my-dictionary-like-so) –

回答

4

基本的Python字典類是無序的。如果您使用的是2.7或3.anything,則需要使用collections.OrderedDict,或者您可以使用Google for 2.6或更早版本輕鬆找到的衆多實現之一。以下是Python文檔爲2.4-2.6鏈接的一個配方:http://code.activestate.com/recipes/576693/

+0

所以我不得不做「導入集合」,然後x = collections.OrderedDict {'a':1,'b':2}? – user2943615

+1

如果你想控制順序,你必須給OrderedDict一個可迭代的鍵/值對,或者在創建它之後添加它們。例如:'x = collections.OrderedDict([('a',1),('b',2)])''。或'x = collections.OrderedDict(); x ['a'] = 1; x ['b'] = 2'。 –