Ответ 1
Например:
keys = ['name', 'last_name', 'phone_number', 'email']
dict2 = {x:dict1[x] for x in keys}
Каков наилучший способ создания dict
с некоторыми атрибутами из другого dict
в Python?
Например, предположим, что у меня есть следующий dict
:
dict1 = {
name: 'Jaime',
last_name: 'Rivera',
phone_number: '111111',
email: '[email protected]',
password : 'xxxxxxx',
token: 'xxxxxxx',
secret_stuff: 'yyyyyyy'
}
Я хотел бы получить
dict2 = {
name: 'Jaime',
last_name: 'Rivera',
phone_number: '111111',
email: '[email protected]'
}
Например:
keys = ['name', 'last_name', 'phone_number', 'email']
dict2 = {x:dict1[x] for x in keys}
Использование понимания dict:
required_fields = ['name', 'last_name', 'phone_number', 'email']
dict2 = {key:value for key, value in dict1.items() if key in required_fields}
for key in d1:
if key in wanted_keys:
d2[key] = d1[key]
Обновление
Недавно я выяснил, что существует гораздо более чистый способ сделать это с помощью dict
понятий
wanted_keys = set(['this_key', 'that_key'])
new_dict = {k: d1[k] for k in d1.keys() & wanted_keys}
def removekey(mydict, key):
r = dict(mydict)
del r[key]
return r
передать словарь mydict и ключ для удаления, возвращает оставшийся словарь