有没有一种简单的方法可以在Python中“附加()”两个词典?

时间:2010-04-06 15:57:59

标签: python dictionary

如果我有两个字典,我想用Python结合,即

a = {'1': 1, '2': 2}
b = {'3': 3, '4': 4}

如果我对它们运行更新,则重新排序列表:

a.update(b)
{'1': 1, '3': 3, '2': 2, '4': 4}

当我真正想要的是将“b”附加到“a”的末尾时:

{'1': 1, '2': 2, '3': 3, '4': 4}

是否有一种简单的方法可以将“b”附加到“a”的末尾而无需像这样手动组合它们:

for key in b:
    a[key]=b[key]

+ =或append()之类的东西是理想的,但当然也不适用于字典。

5 个答案:

答案 0 :(得分:11)

python字典没有排序 - 如果在实践中项目以特定顺序出现,那纯粹是特定实现的副作用,不应该依赖。

答案 1 :(得分:2)

字典是无序的:它们没有开头或结尾。无论您使用update还是for循环,最终结果仍然是无序的。

如果您需要订购,请改用元组列表。 Python 3.1有一个OrderedDict类型,它也将在Python 2.7中。

答案 2 :(得分:2)

不订购字典。如果您需要订购,可以尝试列表。

答案 3 :(得分:1)

标准库as of Python 3.1.1中有一个有序字典,但它的用例是有限的。通常,如果您使用字典,则只需将键映射到值,而不是顺序。如果您没有使用Python 3.x,那么对于有序词典也有各种方法,但您应该首先问问自己订单是否重要,如果是,那么,您是否使用正确的数据结构。

答案 4 :(得分:0)

我认为你误解了词典的使用。您不访问它们的序列或位置。您可以从密钥中访问它们,在您的情况下也恰好是数字。它们是哈希表,应该像这样工作。你正确地做到了。