Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一个简单的方法来;附加();Python中的两个词典?_Python_Dictionary - Fatal编程技术网

有没有一个简单的方法来;附加();Python中的两个词典?

有没有一个简单的方法来;附加();Python中的两个词典?,python,dictionary,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”的末尾时: 有没有一种简单的方法可以将“b”附加到“a”的末尾,而不必像这样手动组合它们: for key in b: a[key]=b[key] 像+=或append()这样的东西是

如果我有两个我想在Python中组合的字典,即

a = {'1': 1, '2': 2}
b = {'3': 3, '4': 4}
如果我对它们运行更新,它会对列表重新排序:

a.update(b)
{'1': 1, '3': 3, '2': 2, '4': 4}
当我真正想要的是将“b”附加到“a”的末尾时:

有没有一种简单的方法可以将“b”附加到“a”的末尾,而不必像这样手动组合它们:

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

像+=或append()这样的东西是理想的,但当然这两种方法都不适用于字典。

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


如果需要排序,请使用元组列表。Python3.1有一个
OrderedDict
类型,它也将在Python2.7中出现。

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

字典没有顺序。如果您需要订购,您可以尝试一些类似列表的方法。

我认为您误解了词典的使用。您不能按顺序或位置访问它们。您可以通过钥匙访问它们,在您的情况下,钥匙也恰好是数字。它们是哈希表,应该是这样工作的。您做得很正确。

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

update()方法是“组合”字典的正确方法,所以也许你需要解释为什么你想要你认为你想要的。。。你真的有理由想要一本有特定顺序的字典吗,或者你只是被你看到的行为弄糊涂了,但是组合字典确实适合你,因为它现在很有意义。我认为字典有一个命令,其他人提到的是不正确的。如果命令对你很重要,你可以考虑一个元组列表而不是字典。否则,正如其他人提到的,总是有顺序的字典。
for key in b:
    a[key]=b[key]