我有一本字典,我想检查它是否存在于列表中。 断言它的最佳方法是什么?
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'
^修正了一点数据结构
答案 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
中的每个元素是否都在其他元素中。
答案 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