附加到存储在嵌套字典中的列表

2024-06-10 18:23:30 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我想创建这样的词典:

switches = {'s1': {'port1': [[0, 0, 0], [1, 1, 1]], 'port2': [2,2,2]}}

我试过:

^{pr2}$

但是,[1, 1, 1]覆盖了[0, 0, 0]!在

我怎样才能得到键'port1'的值[[0, 0, 0], [1, 1, 1]]?在


Tags: 词典s1switchespr2port1port2
2条回答

您的dict键可能是某种列表,因此您可以向其附加多个值。在

switches['s1'] = {}
switches['s1']['port1'] = list()
switches['s1']['port1'].append([0, 0, 0])
switches['s1']['port1'].append([1, 1, 1])

另外,如果您添加单个值,您也可以将它们放入一个列表中,这样您就可以始终以相同的方式访问dict:

^{pr2}$

得到第一个港口

print(switches['s1']['portN'][0]

扩展一下idjaw的评论和keksnicoh的回答,我认为使用defaultdict可以让你的生活更轻松一些。在

>>> from collections import defaultdict
>>> d = defaultdict(lambda: defaultdict(list))
>>> d['s1']['port1'].append([0, 0, 0])
>>> d['s1']['port1'].append([1, 1, 1])
>>> d['s1']['port2'].append([2, 2, 2])
>>> d
defaultdict(<function <lambda> at 0x7f5d217e2b90>, {'s1': defaultdict(<type 'list'>, {'port2': [[2, 2, 2]], 'port1': [[0, 0, 0], [1, 1, 1]]})})

你可以像普通字典一样使用它:

^{pr2}$

相关问题 更多 >