Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.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 如果键不为';不存在于列表中_Python - Fatal编程技术网

Python 如果键不为';不存在于列表中

Python 如果键不为';不存在于列表中,python,Python,如果列表abc中不存在var['name'],我想从var中删除字典中的一个变量 abc = [123,345,678] var = [{'name':'123, 'age':12},{name:345, 'age':32},{name:789,'age':39}] 我尝试了以下方法 final = [{'name':'123, 'age':12},{name:345, 'age':32}] 它删除了一些dict,但只留下一个dict。下面是一个列表理解方法: for i,element i

如果列表abc中不存在var['name'],我想从var中删除字典中的一个变量

abc = [123,345,678]
var = [{'name':'123, 'age':12},{name:345, 'age':32},{name:789,'age':39}]
我尝试了以下方法

final = [{'name':'123, 'age':12},{name:345, 'age':32}]

它删除了一些dict,但只留下一个dict。下面是一个列表理解方法:

for i,element in enumerate(abc):
   if element['name'] in var.keys():
      element['salary'] = '50000'
   else:
       abc.pop(i)

建议使用集合参考


你是如何解决这个问题的?请向我们展示您的尝试,并解释它到底是如何不起作用的您正在为每个迭代实例化一个新集合,因此它根本无助于时间复杂性。在列表中使用该集合之前,应该先实例化它。@blhsing有意义。纠正
final = [v for v in var if v['name'] in abc]
final = filter(lambda x: x['name'] in abc, var)
set_abc = set(abc)
final = [x for x in var if x['name'] in set_abc]