#python #dictionary
#python #словарь
Вопрос:
- У меня есть родительский словарь my_d
- Если значение не найдено, мне нужно передать None
- Мой код работает отлично, ниже приведен код
event = {
"id": "12",
"name": Abc,
"redacted": false
}
my_d = {'id': None, 'name': None, 'description': None}
my_d['id'] = event['id']
my_d['name'] = event['name']
my_d['description'] = event['description']
Есть ли какой-либо способ переписать приведенный выше код
как показано ниже
my_d['id'] = if event['id'] else None
my_d['name'] = if event['name'] else None
my_d['description'] = if event['description'] else None
В принципе, я не хочу использовать my_d = {'id': None, 'name': None, 'description': None}
Я только что показал один пример словаря, мне нужно зациклить так много событий
Комментарии:
Ответ №1:
my_d = dict((k, event.get(k)) for k in ["id", "name", "description"])
Комментарии:
1.
event[k] if k in event else None
может быть записан проще какevent.get(k)
2. Было бы немного быстрее, если бы вы использовали
set
вместоlist
. Также использование понимания dict должно быть быстрее, чем передача generator вdict()
.