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

2024-06-25 22:32:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过比较一个列表和一个以列表为其值的字典来获取关键字。科目是我的单子,学校是我的字典

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

在这种情况下,我找不到钥匙。我的预期输出是返回School1和School3


Tags: 列表字典english关键字学校单子sciencesubjects
2条回答

这是给你的单行线

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

据我所知,您希望返回包含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列表中的项包含subject,则将其附加到result列表中

相关问题 更多 >