Python 3.x 在字典中保留某些值基于列表的值
我有一本字典Python 3.x 在字典中保留某些值基于列表的值,python-3.x,string,loops,dictionary,Python 3.x,String,Loops,Dictionary,我有一本字典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': [
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_列表
?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']}
你也可以这样做
{key:set(values)-set(l)表示键,d.items()中的值}
或者,如果希望值是列表而不是集合
{key:list(set(values)-set(l))用于键,d.items()中的值]