问题描述
我有以下词典:
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中更灵活。