我有一个很大的字典列表,我想将其作为子集,如下所示:
first_list = [{'name':'James','gender':'M','address':'California'},{'name':'Tom','gender':'M','address':'California'},
{'name':'Jane','gender':'F','address':'Utah'},
{'name':'Kim','gender':'F','address':'Wisconsin'},
{'name':'Ron','gender':'M','address':'Montana'}]
我还有另一份名单,名字是:
^{pr2}$我想得到一个列表,其中第一个列表中的“name”不是第二个列表的一部分,这只是删除了James和Tom字典。在
[{'name':'Jane','gender':'F','address':'Utah'},
{'name':'Kim','gender':'F','address':'Wisconsin'},
{'name':'Ron','gender':'M','address':'Montana'}]
我尝试过使用列表理解,但我不认为这种方法适用于不同的列表:
third_list = [x for x in first_list if x['name'] != (y for y in second_list)]
这不起作用,将返回与第一个列表相同的列表。我的语法错误吗?在
您的代码不工作,因为},我想您想要的是:
(y for y in second_list)
是一个生成器,x['name']
是一个字符串,这意味着它将一直返回{要做到这一点,请尝试使用
^{pr2}$filter
方法:使用适合您的
not in
。结果
^{pr2}$使用
相关问题 更多 >
编程相关推荐