Как упростить проверку наличия данных в словаре?

Приходит словарь данных с неизвестным количеством полей из известного списка. Сейчас проверка выглядит так:

data['email'] if 'email' in data else None,
data['birthday'] if 'birthday' in data else None,
data['gender'] if 'gender' in data else None,


Это как-то можно упростить?
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Zzzz9
data={
    'email':'s@mail.io',
    'birthday':'17.05.2000',
    'gender' : 77
}
key=['email','age','gender']
for k in key:
    print(data.get(k,'нету'))


s@mail.io
нету
77
Ответ написан
Комментировать
@Medovochka
Для упрощения проверки наличия данных в словаре вы можете использовать метод get() для словаря.

fields = ['email', 'birthday', 'gender']

for field in fields:
    value = data.get(field)
    print(value)


Также можно использовать словарное включение (dictionary comprehension) для создания нового словаря, содержащего только существующие поля:

fields = ['email', 'birthday', 'gender']
existing_fields = {field: data.get(field) for field in fields if field in data}
print(existing_fields)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы