我有一个Python脚本(如下),并且在弄清楚如何在字典内的字典中进行过滤时遇到麻烦。我希望在有对象属性induction n; destruct m; auto.
- apply sub_0_r.
- apply IHn.
的情况下完成操作,然后将对象本身删除。如果有帮助,我正在尝试从GitHub/linguist中过滤掉HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
。
'type': 'data'
答案 0 :(得分:0)
您的代码有两个问题。
第一个是del language
是键值,而不是字典中对其的引用。因此,您需要将其更改为del data[language]
才能真正删除字典中的键和值。
第二个是您要根据字典的大小进行循环。更改for language in data
以通过执行for language in data.keys()
来遍历键,这将解决字典调整大小的问题。
最终代码:
for language in data.keys():
if data[language]['type'] == 'data':
del data[language]
还有另一个优化。将内容分配给数据后,您可以关闭文件,因为您不再使用它。老实说,这只会在文件内容很大时有所作为,因为它将释放要使用的内存。