我有字典d
d = {'1': ['Fisherman', 'fam', '125', '53901', 'funny'],
'2': ['Joi', '521', 'funny','fun', '1245']}
和列表l
l = ['521', 'Fisherman', 'fun','A2ML1', 'A3GALT2','funny']
我想保留d
中不在l
中的值。我希望输出为
d_list = {'1': ['fam','125', '53901'],'2': ['Joi', '1245']}
为此,我尝试了
d_list = []
for k, v in d.items():
if v not in l:
d_list.append(v)
但这并不能满足我的需求。我该如何对自己的代码(或新代码)进行操作以得到所需的d_list
?
答案 0 :(得分:0)
v
是一个列表,而不是str
尝试此代码:
d1 = {}
for k, v in d.items():
d1[k] = [i for i in v if i not in l]
d1
输出:
{'1': ['fam', '125', '53901'], '2': ['Joi', '1245']}
答案 1 :(得分:0)
您也可以这样做
{key:set(values) - set(l) for key, values in d.items()}
或者如果您希望值是列表而不是set
{key:list(set(values) - set(l)) for key, values in d.items()}