如果我有两个字典,我想用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()之类的东西是理想的,但当然也不适用于字典。
答案 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)
我认为你误解了词典的使用。您不访问它们的序列或位置。您可以从密钥中访问它们,在您的情况下也恰好是数字。它们是哈希表,应该像这样工作。你正确地做到了。