【发布时间】:2017-10-14 12:24:07
【问题描述】:
我正在尝试删除嵌套在字典中的列表中的字典项。
在我del 对象之后,修改后的字典将包含一个空字典:{} 代替已删除的对象。
这是我正在使用的代码:
json_dict = {"top_key": "top_value", "bottom_key": [{"list_dict": "list_dict_value"},{"list_dict1": "list_dict_value1"}]}
print("initial:", json_dict)
def delete(list_dict):
for i in json_dict["bottom_key"]:
if list_dict in i:
del i[list_dict]
delete("list_dict")
print("final:", json_dict)
最后的打印会返回:final: {'bottom_key': [{}, {'list_dict1': 'list_dict_value1'}], 'top_key': 'top_value'}
(pw-retriever) simon@[pw-retriever](fix_del_ls)
我正在尝试找到一种方法来一次性删除除键:值对之外的{}。
编辑:对到底发生了什么的解释也将不胜感激。
【问题讨论】:
-
所有的内部字典都只有一个键吗?
-
@schwobaseggl 驻留在列表中的内部字典都是一键:一值
-
您可以使用
del i,但要安全地执行此操作,您必须反向遍历列表。或者按照 schwobaseggl 的建议复制一份列表进行迭代。
标签: python json python-3.x dictionary