Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在字典中保留某些值基于列表的值_Python 3.x_String_Loops_Dictionary - Fatal编程技术网

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()中的值]