2013-11-01 136 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'。 –