如何将多个字典添加到一组Python

问题描述

我有以下词典:

x = {"Name": "A"}
y = {"Name": "B"}
z = {"Name": "C"}

all_dictionaries = {}
all_dictionaries.update(x)
all_dictionaries.update(y)
all_dictionaries.update(z)
print(all_dictionaries)

输出

{'Name': 'C'}.

但是我希望它打印以下内容一个包含所有声明的字典的大集合):

{{"Name": "A"},{"Name": "B"},{"Name": "C"}}

update()不起作用。 任何帮助表示赞赏!

解决方法

您可以将三个词典合并到一个集合(或列表)中。

all_dictionaries = [x,y,z]

这看起来像: [{"Name": "A"},{"Name": "B"},{"Name": "C"}]

或者您可以给每个字典一个键。

all_dictionaries = {"x": x,"y": y,"z": z}

如下所示:{"x": {"Name": "A"},"y": {"Name": "B"},"z": {"Name": "C"}}

,

如果您想使用嵌套词典:

nested_dict = dict(x={"Name": "A"},y={"Name": "B"},z={"Name": "C"})

print(nested_dict)

输出:

{'x': {'Name': 'A'},'y': {'Name': 'B'},'z': {'Name': 'C'}}
,

看起来像没有值的字典的表示法表示一个称为“ set”的数据类型,它不是字典。

由于集合不能包含不可散列的项目(如字典),因此必须选择其他数据类型来使用。

您可以使用列表或元组将许多键分组到一个容器中。

[{"Name": "A"},{"Name": "C"}]  # List
({"Name": "A"},{"Name": "C"})  # Tuple
,

字典使用键和值的组合来存储数据,因此不可能做类似的事情。

您可以使用数组(实际上是python中的列表)来存储多个字典,如下所示:

x = {"Name": "A"}
y = {"Name": "B"}
z = {"Name": "C"}
array = [x,z]
print(array)      # [{'Name': 'A'},{'Name': 'B'},{'Name': 'C'}]

或者您也可以像这样将它们放在一个元组中:

x = {"Name": "A"}
y = {"Name": "B"}
z = {"Name": "C"}
tuple = (x,z)
print(tuple)      # ({'Name': 'A'},{'Name': 'C'})

您可以使用for循环自由地进行迭代,也可以像通常一样手动访问数组索引:

# Using the array from the first example
array[0]  # {'Name': 'A'}

请记住,元组不可更改,而数组在python中更灵活。