Python - >断言字典存在于

时间:2017-07-20 15:33:37

标签: python dictionary

我有一本字典,我想检查它是否存在于列表中。 断言它的最佳方法是什么?

   tag_to_test_dict = {
    'category': 'environment',
    'name': 'quality assurance'
},{
    'category': 'department',
    'name': 'accounting'
}

gui_tags_list = [
    'department: accounting',
    'environment: quality assurance'
]

我按照建议尝试了这个,但它并没有产生良好的反应:

    if all(name in tag_to_test_dict for name in gui_tags_list):
        return 'True'

^修正了一点数据结构

2 个答案:

答案 0 :(得分:1)

  

知道字典中的两个值都在列表中

使用set对象的解决方案:

has_all = set(tag_to_test_dict.values()) <= set(v for d in gui_tags_list for k,v in d.items())
print(has_all)

输出:

False
  

issubset(其他)
   设置&lt; =其他

     

测试 set 中的每个元素是否都在其他元素中。

http://www.vim.org/scripts/script.php?script_id=2624

答案 1 :(得分:0)

所以,我实际解决它的方式是:

for tag_to_test in tag_to_test_dict:
    assert '{}{} {}'.format(tag_to_test.values()[0], ":", tag_to_test.values()[1]) in gui_tags_list