从匹配值列表中删除dict

2024-05-15 04:48:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份口述清单

list dict =  [
         {'children': [], 'folder': 'test2', 'parent': 'None'},
         {'children': [{'children': [], 'folder': 'arun2', 'parent': 'arun2'}],
          'folder': 'arun2',
          'parent': 'None'},
         {'children': [], 'folder': 'important', 'parent': 'None'},
         {'children': [], 'folder': 'arun', 'parent': 'None'},
         {'children': [], 'folder': 'hoi', 'parent': 'None'},
         {'children': [], 'folder': 'drafts', 'parent': 'None'},
         {'children': [], 'folder': 'Trash', 'parent': 'None'},
         {'children': [], 'folder': 'sent', 'parent': 'None'},
         {'children': [], 'folder': 'spam', 'parent': 'None'},
         {'children': [], 'folder': 'reference', 'parent': 'None'},
         {'children': [], 'folder': 'test3', 'parent': 'None'},
         {'children': [], 'folder': 'test1', 'parent': 'None'},
         {'children': [], 'folder': 'INBOX', 'parent': 'None'} 
        ]

现在我想从list_dict中删除dict,它拥有remove_key_list中的所有值

^{pr2}$

例如,我想从list dict中删除{'children': [], 'folder': 'INBOX', 'parent': 'None'},并返回{}

我对python不熟悉如何在这里使用dellamda函数。在


Tags: nonefolderdictlistparentchildrentest2trash
2条回答

如果您只想删除与您的folder中的一个remove_key_list相等的dict,这应该可以完成这个任务。在

list_dict =  [
         {'children': [], 'folder': 'test2', 'parent': 'None'},
         {'children': [{'children': [], 'folder': 'arun2', 'parent': 'arun2'}],
          'folder': 'arun2',
          'parent': 'None'},
         {'children': [], 'folder': 'important', 'parent': 'None'},
         {'children': [], 'folder': 'arun', 'parent': 'None'},
         {'children': [], 'folder': 'hoi', 'parent': 'None'},
         {'children': [], 'folder': 'drafts', 'parent': 'None'},
         {'children': [], 'folder': 'Trash', 'parent': 'None'},
         {'children': [], 'folder': 'sent', 'parent': 'None'},
         {'children': [], 'folder': 'spam', 'parent': 'None'},
         {'children': [], 'folder': 'reference', 'parent': 'None'},
         {'children': [], 'folder': 'test3', 'parent': 'None'},
         {'children': [], 'folder': 'test1', 'parent': 'None'},
         {'children': [], 'folder': 'INBOX', 'parent': 'None'} 
        ]

filter_list = ['INBOX', 'sent', 'Trash']

filtered_list = [d for d in list_dict if d['folder'] not in filter_list]
for k,i in enumerate(list(list_dict)):
    if i['folder'] in remove_folder_list:
        del list_dict[list_dict.index(i)]

print(list_dict)

相关问题 更多 >

    热门问题