Python 如何从其他词典创建词典?
在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',
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'}