我有一个包含var1=vara
,var1=varb
,var2=vara
等信息的列表字典。这可能有很多条目,我打印出来就像这样
for y in myDict:
print(y+"\t"+myDict[y])
我有另一个列表,其中包含类似于var2,var3等的排除项。这可能有< 10个条目,我可以像这样打印
for x in myList:
print(x)
现在我想删除字典中键值为列表值的键值对。我试过这个
for x in myList:
for y in myDict:
if x != y: print(y+"\t"+myDict[y])
但是在每次通过列表时,它会让所有其他人从当前的`x到屏幕
如果列表中存在密钥,是否有一种很好的python方法可以从字典中删除密钥对?
答案 0 :(得分:5)
你的意思是
for key in myDict:
if key not in myList:
print(key+"\t"+myDict[key])
或许多替代品之一:
for key in (set(myDict)-set(myList)):
print(key+"\t"+myDict[key])
答案 1 :(得分:1)
mySet = set(myList)
myNewDict = dict(((k, v) for k, v in myDict if k not in mySet))
请注意,除非myList包含大量条目,否则使用mySet
代替myList
不是问题。