Как создать словарь из другого словаря?

Каков наилучший способ создания 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]'
}

Ответ 1

Например:

keys = ['name', 'last_name', 'phone_number', 'email']
dict2 = {x:dict1[x] for x in keys}

Ответ 2

Использование понимания dict:

required_fields = ['name', 'last_name', 'phone_number', 'email']
dict2 = {key:value for key, value in dict1.items() if key in required_fields}

Ответ 3

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}

Ответ 4

def removekey(mydict, key):
    r = dict(mydict)
    del r[key]
    return r

передать словарь mydict и ключ для удаления, возвращает оставшийся словарь