在Python中将字典创建到另一个字典的语法

43 投票
3 回答
175432 浏览
提问于 2025-04-16 04:43

可能重复的问题:
在Python中将一个列表插入到另一个列表的语法

在Python中,如何把一个字典放到另一个字典里,语法应该是什么样的呢?

3 个回答

3

你是想把一个字典放进另一个字典里,作为它的一个元素,还是想通过一个字典的键来引用另一个字典的值呢?

之前的回答已经讲过第一种情况,就是在一个字典里创建另一个字典。

如果你想把一个字典的值重新引用到另一个字典里,可以使用 dict.update 这个方法:

>>> d1 = {1: [1]}
>>> d2 = {2: [2]}
>>> d1.update(d2)
>>> d1
{1: [1], 2: [2]}

如果两个字典都有同样的值,修改其中一个字典的值,另一个字典也会看到这个变化:

>>> d1[2].append('appended')
>>> d1
{1: [1], 2: [2, 'appended']}
>>> d2
{2: [2, 'appended']}

这其实和把值复制过去或者用这个值新建一个字典是一样的,也就是说:

>>> d3 = {1: d1[1]}
>>> d3[1].append('appended from d3')
>>> d1[1]
[1, 'appended from d3']
9
dict1 = {}

dict1['dict2'] = {}

print dict1

>>> {'dict2': {},}

这通常被称为把一个迭代器放进另一个迭代器里,我觉得。

106

你可以在一个字典里面再放一个字典,这就叫做嵌套字典,方法是把{}放在一起:

d = {'dict1': {'foo': 1, 'bar': 2}, 'dict2': {'baz': 3, 'quux': 4}}

然后你可以用[]的方式来访问里面的元素:

print d['dict1']           # {'foo': 1, 'bar': 2}
print d['dict1']['foo']    # 1
print d['dict2']['quux']   # 4

根据上面的内容,如果你想在这个字典里再添加一个字典,可以这样做:

d['dict3'] = {'spam': 5, 'ham': 6}

或者如果你更喜欢一个一个地往里面添加内容,也可以这样:

d['dict4'] = {}
d['dict4']['king'] = 7
d['dict4']['queen'] = 8

撰写回答