我是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}}
有人可以帮忙吗?
答案 0 :(得分: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
答案 1 :(得分:1)
这样做:
dict['a']['dist'] = 12
答案 2 :(得分:1)
试试这个:
dict['a'].update( {'dist': 12} )
答案 3 :(得分:0)
不要将{'dist':12}
分配给dict['a']
,而是使用update
方法。
dict['a'].update( {'dist':12} )
这样做的好处是不需要“拆分”新字典来查找要插入目标的密钥。考虑:
a = build_some_dictionary()
for k in a:
dict['a'] = a[k]
VS
dict['a'].update(a)