在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'
}
答案 0 :(得分:35)
例如:
keys = ['name', 'last_name', 'phone_number', 'email']
dict2 = {x:dict1[x] for x in keys}
答案 1 :(得分:18)
使用dict理解:
required_fields = ['name', 'last_name', 'phone_number', 'email']
dict2 = {key:value for key, value in dict1.items() if key in required_fields}
答案 2 :(得分:5)
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}
答案 3 :(得分:3)
不知道怎么没人回答这个问题。
你可以使用双星号来解构一个字典,巧合的是,这也适用于另一个字典。
someweirddata = {"hello":"world"}
print({"initial data":"yati yati yata",**someweirddata})
输出:
{'initial data': 'yati yati yata', 'hello': 'world'}
这与 Javascript 的 ... 相同,只是它是 **
答案 4 :(得分:2)
def removekey(mydict, key):
r = dict(mydict)
del r[key]
return r
传递mydict字典和要删除的密钥,返回剩余的字典
答案 5 :(得分:1)
对于想要dict1的完整副本但不列出密钥的任何人:
dict2 = {k: v for k, v in dict1.items()}