15

我是python新手,在制作字典时被卡住了..请帮忙:)

这就是我要开始的:

dict = {}
dict['a']={'ra':7, 'dec':8}
dict['b']={'ra':3, 'dec':5}

到目前为止一切都很完美。我得到:

In [93]: dict
Out[93]: {'a': {'dec':8 , 'ra': 7}, 'b': {'dec': 5, 'ra': 3}}

但是现在,如果我想在键“a”中添加更多内容,我会这样做:

dict['a']={'dist':12}

然后它会删除'a'的先前信息,我现在得到的是:

In [93]: dict
Out[93]: {'a': {'dist':12}, 'b': {'dec': 5, 'ra': 3}}

我想要的是:

In [93]: dict
Out[93]: {'a': {'dec':8 , 'ra': 7, 'dist':12}, 'b': {'dec': 5, 'ra': 3}}

有人可以帮忙吗?

4

4 回答 4

20
>>> d = {}
>>> d['a'] = {'ra':7, 'dec':8}
>>> d['b'] = {'ra':3, 'dec':5}
>>> d['a']['dist'] = 12
>>> d
{'a': {'dec': 8, 'dist': 12, 'ra': 7}, 'b': {'dec': 5, 'ra': 3}}

如果要从另一个字典更新字典,请使用update()

使用其他键/值对更新字典,覆盖现有键。

>>> d = {}
>>> d['a'] = {'ra':7, 'dec':8}
>>> d['b'] = {'ra':3, 'dec':5}
>>> d['a'].update({'dist': 12})
>>> d
{'a': {'dec': 8, 'dist': 12, 'ra': 7}, 'b': {'dec': 5, 'ra': 3}}

另外,不要dict用作变量名——它会影响内置dict类型。看看可能发生什么:

>>> dict(one=1)
{'one': 1}
>>> dict = {}
>>> dict(one=1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'dict' object is not callable
于 2013-09-17T13:34:35.150 回答
1

做这个:

dict['a']['dist'] = 12
于 2013-09-17T13:34:12.753 回答
1

尝试这个:

dict['a'].update( {'dist': 12} )

于 2013-09-17T13:37:29.233 回答
0

不要分配{'dist':12}dict['a'],而是使用该update方法。

dict['a'].update( {'dist':12} )

这具有不需要“分解”新字典以查找要插入目标的键的优点。考虑:

a = build_some_dictionary()
for k in a:
    dict['a'] = a[k]

对比

dict['a'].update(a)
于 2013-09-17T13:36:26.560 回答