Вывести значение из списка которая находится в словаре

Есть задание.

a = {'Civil Engineering': ['Thomas', 'Benjamin', 'Franklin'],
             'Psycology': ['Joe', 'Chedwick', 'Helena']}

Надо использовать одно имя из списка, который является значением у словаря, для выведения утверждения об этом ученике, чтобы получилось как-то так:
This is Franklin. He studies Civil Engineering.
Без понятия как вывести значение из списка в словаре


Ответы (2 шт):

Автор решения: Sergei Malanin

получение значения из словоря:

a = {'Civil Engineering': ['Thomas', 'Benjamin', 'Franklin'],
     'Psycology': ['Joe', 'Chedwick', 'Helena']}

print(a["Psycology"])

Соответственно получение значения из списка

print(a["Psycology"][0])

Итого в вашем случае может сработать что то вроде

for key in a.keys():
    for person in a[key]:
        print(f"This is {person}. He studies {key}")

Так же рекомендую прочитать вот это
https://pythonworld.ru/tipy-dannyx-v-python/slovari-dict-funkcii-i-metody-slovarej.html
и вот это
https://pythonworld.ru/tipy-dannyx-v-python/spiski-list-funkcii-i-metody-spiskov.html

→ Ссылка
Автор решения: Andy Pavlov

Первый вариант. Имеем обычную проверку на включение в список с итерацией по словарю:

name = 'Thomas'

for k, v in a.items():
    print('This is {}. He studies {}'.format(name, k)) if name in v else None

Можно пойти другим путем с "выворачиванием" словаря в ключи-имена и значения-предметы, но тут должны быть уникальные ученики:

a = {'Civil Engineering': ['Thomas', 'Benjamin', 'Franklin'],
     'Psycology': ['Joe', 'Chedwick', 'Helena']}

name = 'Thomas'
subj = {}
for k, v in a.items():
    subj.update(dict.fromkeys(v, k))

print('This is {}. He studies {}'.format(name, subj[name])) if subj.get(name) else None
→ Ссылка