Jai*_*era 16 python dictionary
在Python dict中用另一些属性创建一个属性的最佳方法是什么dict?
例如,假设我有以下内容dict:
dict1 = {
name: 'Jaime',
last_name: 'Rivera',
phone_number: '111111',
email: 'test@gmail.com',
password : 'xxxxxxx',
token: 'xxxxxxx',
secret_stuff: 'yyyyyyy'
}
Run Code Online (Sandbox Code Playgroud)
我想获得
dict2 = {
name: 'Jaime',
last_name: 'Rivera',
phone_number: '111111',
email: 'test@gmail.com'
}
Run Code Online (Sandbox Code Playgroud)
Lev*_*sky 40
例如:
keys = ['name', 'last_name', 'phone_number', 'email']
dict2 = {x:dict1[x] for x in keys}
Run Code Online (Sandbox Code Playgroud)
Ros*_*nko 20
使用dict理解:
required_fields = ['name', 'last_name', 'phone_number', 'email']
dict2 = {key:value for key, value in dict1.items() if key in required_fields}
Run Code Online (Sandbox Code Playgroud)
小智 8
不知道怎么没人回答这个问题。
您可以使用双星号来解构一个字典,而这恰好也适用于另一个字典。
someweirddata = {"hello":"world"}
print({"initial data":"yati yati yata",**someweirddata})
Run Code Online (Sandbox Code Playgroud)
输出:
{'initial data': 'yati yati yata', 'hello': 'world'}
Run Code Online (Sandbox Code Playgroud)
这与 Javascript 的...相同,只不过它是 **
for key in d1:
if key in wanted_keys:
d2[key] = d1[key]
Run Code Online (Sandbox Code Playgroud)
update
I recently figured out that there's a much cleaner way of doing that with dict comprehensions
wanted_keys = set(['this_key', 'that_key'])
new_dict = {k: d1[k] for k in d1.keys() & wanted_keys}
Run Code Online (Sandbox Code Playgroud)