使用列表值将列表与字典匹配

时间:2019-10-15 18:54:30

标签: python python-2.7

我试图通过将列表与以list为值的字典进行比较来获取键。主题是我的清单,学校是我的字典。

subjects = ['English','Mathematics']
Schools = {'School1': ['English','Mathematics','Humanities'],
'School2': ['English','Science','Programming'],
'School3': ['English','Art','Mathematics']}

在这种情况下,我无法检索密钥。我的预期输出将是School1和School3退回

2 个答案:

答案 0 :(得分:1)

据我了解,您想返回包含subject列表项目的列表。如果是这样,则可以这样实现:

result=[]
for item in Schools:
    contains_all =  all(elem in Schools[item] for elem in subjects)
    if contains_all:
        result.append(Schools[item])

我所做的是,如果Schools列表中的项目包含主题,请将其附加在result列表中。

答案 1 :(得分:0)

这里是您的一线客。

x = [school_name 
         for school_name, school_content in Schools.items() 
         if all(
             subject in school_content 
                 for subject in subjects
         )
    ]
# ['School1', 'School3']