Python проверяет, существует ли список ключей в словаре


у меня есть словарь, который выглядит так:

grades = {
        'alex' : 11,
        'bob'  : 10,
        'john' : 14,
        'peter': 7
       }

и список students = ('alex', 'john')

мне нужно проверить, что все имена в students существуют как ключи в grades дикт.

grades может иметь несколько имен, но все имена в students должно быть grades

должен быть простой способ сделать это, но я все еще новичок в python и не могу понять это. пробовал if students in grades, не работал.

в реальных случаях, списки будет намного больше.

2 57

2 ответа:

использовать all():

if all(name in grades for name in students):
    # whatever
>>> grades = {
        'alex' : 11,
        'bob'  : 10,
        'john' : 14,
        'peter': 7
}
>>> names = ('alex', 'john')
>>> set(names).issubset(grades)
True
>>> names = ('ben', 'tom')
>>> set(names).issubset(grades)
False

, назвав его class является недопустимым, поэтому я изменил его на names.