Python 3.x 在python中,将多个词典按顺序追加到一个词典中

Python 3.x 在python中,将多个词典按顺序追加到一个词典中,python-3.x,dictionary,Python 3.x,Dictionary,我有几本这样的字典 dict1 = {0: 33.422, 1: 39.2308, 2: 30.132} dict2 = {0: 42.2422, 1: 43.342, 2: 42.424} dict3 = {0: 13.422, 1: 9.2308, 2: 20.132} ({0: 33.422, 1: 39.2308, 2: 30.132}, {0: 42.2422, 1: 43.342, 2: 42.424}, {0: 13.422, 1: 9.2308, 2: 20.132}) ((

我有几本这样的字典

dict1 = {0: 33.422, 1: 39.2308, 2: 30.132}
dict2 = {0: 42.2422, 1: 43.342, 2: 42.424}
dict3 = {0: 13.422, 1: 9.2308, 2: 20.132}
({0: 33.422, 1: 39.2308, 2: 30.132}, {0: 42.2422, 1: 43.342, 2: 42.424}, {0: 13.422, 1: 9.2308, 2: 20.132})
((({}, {0: 33.422, 1: 39.2308, 2: 30.132}), {0: 42.2422, 1: 43.342, 2: 42.424}), {0: 13.422, 1: 9.2308, 2: 20.132})
我知道我可以使用代码将它们组合到一个字典中

dicts = dict1, dict2, dict3
它会像这样返回结果

dict1 = {0: 33.422, 1: 39.2308, 2: 30.132}
dict2 = {0: 42.2422, 1: 43.342, 2: 42.424}
dict3 = {0: 13.422, 1: 9.2308, 2: 20.132}
({0: 33.422, 1: 39.2308, 2: 30.132}, {0: 42.2422, 1: 43.342, 2: 42.424}, {0: 13.422, 1: 9.2308, 2: 20.132})
((({}, {0: 33.422, 1: 39.2308, 2: 30.132}), {0: 42.2422, 1: 43.342, 2: 42.424}), {0: 13.422, 1: 9.2308, 2: 20.132})
但是,如果字典是按顺序来的呢?我怎样才能得到同样的结果?我尝试了以下代码

dicts = {}
dicts = dicts, dict1
dicts = dicts, dict2
dicts = dicts, dict3
但它会像这样返回结果

dict1 = {0: 33.422, 1: 39.2308, 2: 30.132}
dict2 = {0: 42.2422, 1: 43.342, 2: 42.424}
dict3 = {0: 13.422, 1: 9.2308, 2: 20.132}
({0: 33.422, 1: 39.2308, 2: 30.132}, {0: 42.2422, 1: 43.342, 2: 42.424}, {0: 13.422, 1: 9.2308, 2: 20.132})
((({}, {0: 33.422, 1: 39.2308, 2: 30.132}), {0: 42.2422, 1: 43.342, 2: 42.424}), {0: 13.422, 1: 9.2308, 2: 20.132})

我们怎样才能去掉第一件东西?我在Windows7上使用Python3。所有字典都在avro软件包下的“MyDataFileReader”类型中。

如果我理解正确,您需要字典列表:

dict1 = {0: 33.422, 1: 39.2308, 2: 30.132}
dict2 = {0: 42.2422, 1: 43.342, 2: 42.424}
dict3 = {0: 13.422, 1: 9.2308, 2: 20.132}
dicts = []
dicts.append(dict1)
dicts.append(dict2)
dicts.append(dict3)

正如@MMF在他的评论中已经指出的:
a、b、c
创建一个元组,其中包含
a
b
c
(按该顺序)

您要做的是“更新”词典:

dict = {}
dict.update(dict1)
dict.update(dict2)
dict.update(dict3)
或者,如果您不想让
dict3
dict2
覆盖内容:

dict = {}
dict.update(dict3)
dict.update(dict2)
dict.update(dict1)

但是,如果您只需要包含所有dict的元组,请使用以下命令:

dict = dict1, dict2
dict += dict3,

从示例的第一部分可以看出,您试图获取字典的元组,而不是dict的dict。所以试试这个:

dicts = ()
dicts = dicts + (dict1,)
dicts = dicts + (dict2,)
dicts = dicts + (dict3,)

请注意,后面的逗号是必需的…

dicts=dict1、dict2、dict3
将创建一个元组而不是一个字典。。。因此,您所做的只是创建元组的元组当使用“双赋值”时,dict=dicts,dict1,本质上是创建一个
元组
。元组是不可变的,因此您不能使用以下行(
dicts=dicts,dict2
等)向其添加任何内容。它只是创建一个包含旧元组的新元组。我不确定您想要什么作为最终数据类型。你能详细说明一下吗?你到底需要什么样的数据?您只是想合并多个词典吗?不能附加到词典
dict
键是唯一的,因此您不能只在末尾添加另一个键。在您的示例中,每个dict都有一个
0
键。如果您将DICT组合在一起,您希望这些键发生什么情况(应该发生在
0:33.422
0:42.2422
0:13.422
上)?在这种情况下可能很有用。