我有下面的词典列表:
>>> d={}
>>> d['primary info']={"name":"Mark","age":22,"Id":1234}
>>> d['secondary info']={"location":"Pune"}
现在字典d
的列表如下:
{'secondary info': {'location': 'Pune'}, 'primary info': {'age': 22, 'Id': 1234, 'name': 'Mark'}}
如何从age
删除primary info
键值对?
如何在Id
中更新primary info
的值?
答案 0 :(得分:1)
要删除key, value
对,您可以使用del
:
>>> d = {"bob": "fish", "cat": "dog"}
>>> del d["cat"]
>>> d
{'bob': 'fish'}
至于第二部分,您需要获取密钥"primary info"
的值(另一个dictionary) and then access the
" Id"`的值,并更新它:
d["primary info"]["Id"] = 4321
我可以确认,更新值:
{..., 'primary info': {'Id': 4321, 'name': ...}, ...}
答案 1 :(得分:0)
要从dict
删除密钥或值,您可以使用del
。有关del
的详细信息,请转到此link
你可以像这样解决你的问题..
d={}
d['primary info']={"name":"Mark","age":22,"Id":1234}
d['secondary info']={"location":"Pune"}
del d['primary info']['age'] # deleting
d['primary info']['Id'] = 177 # updating
print(d)
# Output
{'primary info': {'Id': 177, 'name': 'Mark'}, 'secondary info': {'location': 'Pune'}}
希望这会有所帮助..
答案 2 :(得分:0)
您可以使用词典理解:
d = {'secondary info': {'location': 'Pune'}, 'primary info': {'age': 22, 'Id': 1234, 'name': 'Mark'}}
new_id = 2344
new_d = {a:{c:new_id if c == "Id" else d for c, d in b.items() if c != 'age'} for a, b in d.items()}
输出:
{'primary info': {'Id': 2344, 'name': 'Mark'}, 'secondary info': {'location': 'Pune'}}
或者,您可以使用递归来获得更强大的解决方案:
def update(d, new_id, delemeter='age'):
if all(not isinstance(b, dict) for a, b in d.items()):
return {a:new_id if a == "Id" else b for a, b in d.items() if a != delemeter}
final_data = {a:update(b, new_id, delemeter=delemeter) for a, b in d.items()}
return final_data
输出:
{'primary info': {'Id': 2344, 'name': 'Mark'}, 'secondary info': {'location': 'Pune'}}