比较列表中的值与字典中的值

时间:2019-01-07 11:38:59

标签: python python-3.x

我有一个字典,其中包含值列表和列表:

dict={'first':45, 'second':30, 'third':56}
list= [30,45]

我想将字典中的值与列表进行比较,然后将匹配项添加到新字典中,然后从旧字典中删除新字典中的所有值:我正在执行以下操作:

    def get_sessions(self, talks):
      result_sessions = {}
      for k, v in self.sessions.items():
          for i in talks:
            if v == i:
                result_sessions[k] = v
      for k, v in result_sessions.items():
         del self.sessions[k]
     return result_sessions

也许您知道一个更优雅的解决方案?有帮助吗?

1 个答案:

答案 0 :(得分:0)

这是一种方法。

例如:

d ={'first':45, 'second':30, 'third':56}
lst = [30,45]

result_sessions = {k: v for k, v in d.items() if v in lst}
d = { k : d[k] for k in set(d) - set(result_sessions) }

print(result_sessions)
print(d)

输出:

{'second': 30, 'first': 45}
{'third': 56}