在Python列表中的元组中过滤字典

问题描述

是否可以根据某个列表中的键来过滤位于元组内部,位于列表内部的字典?

我有一个列表,列表中的每个元素都是一个元组,每个元组的第一个元素是一个字典。我只想保留其键在某些列表中的字典项。

我该怎么做?

mifw_basemodel = ['word1','word2','word3',...,'wordn']

train_set = [({'Blah': 1,'blah2': 18,...},'pos'),({'worrrda':22,'hmmmsa':12,'neg'),({'duhduh':21,'blahduh':12,...
             ({'foo':2,'bar':4,'pos')]

这是我目前正在尝试的方法{ your_key: train_set[0][0][your_key] for your_key in train_set[0][0] if train_set[0][0].keys() in mifw_basemodel}

解决方法

您可以按初始列表的内容进行迭代,然后使用以下语法对列表的每个内容进行迭代:

for key,value in content.items()
    if key in mifw_basemodel:
        new_list.append(value)

这会从整体上检查字典,而不是尝试查找每个项目的键