Python 如何从其他词典创建词典?

Python 如何从其他词典创建词典?,python,dictionary,Python,Dictionary,在Python中,从另一个dict创建具有某些属性的dict的最佳方法是什么 例如,假设我有以下dict: dict1 = { name: 'Jaime', last_name: 'Rivera', phone_number: '111111', email: 'test@gmail.com', password : 'xxxxxxx', token: 'xxxxxxx',

在Python中,从另一个
dict
创建具有某些属性的
dict
的最佳方法是什么

例如,假设我有以下
dict

dict1 = {
    name:          'Jaime',
    last_name:     'Rivera',
    phone_number:  '111111',
    email:         'test@gmail.com',
    password :     'xxxxxxx',
    token:         'xxxxxxx',
    secret_stuff:  'yyyyyyy'   
}
我想获得

dict2 = {
    name:          'Jaime',
    last_name:     'Rivera',
    phone_number:  '111111',
    email:         'test@gmail.com'
}
例如:

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

我最近发现,有一种更简洁的方法可以通过
dict
理解来实现这一点

wanted_keys = set(['this_key', 'that_key'])
new_dict = {k: d1[k] for k in d1.keys() & wanted_keys}

传递mydict dictionary和要删除的键,使用dict comprehension返回剩余的字典:

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

对于想要完整复制dict1而不制作密钥列表的任何人:


dict2={k:v代表k,dict1.items()中的v}

不知道怎么会有人不回答这个问题

你可以用双星号来解构一个dict,顺便说一下,它也在另一个dict中工作

someweirddata = {"hello":"world"}
print({"initial data":"yati yati yata",**someweirddata})
输出:

{'initial data': 'yati yati yata', 'hello': 'world'}

这与Javascript的…相同,只是它是**

@JaimeRivera:作为一种防御措施,您可能希望在字典理解表达式的末尾添加
…如果dict1
中的x,以避免在缺少任何键时出现
键错误
异常。或者如果您希望在这些情况下交换默认值,您可以在dict上使用
.get()
,而不是索引。为什么不直接使用copy呢
from copy import copy
这没有回答问题。即使LundinCast没有回答问题,制作一份完整的副本可能与最终来到这里的人有关。获取完整副本的更简单解决方案:
dict2=dict(dict1)
someweirddata = {"hello":"world"}
print({"initial data":"yati yati yata",**someweirddata})
{'initial data': 'yati yati yata', 'hello': 'world'}