我试图找出如何创建,例如,一个看起来像这样的字典:d[keys[0]][keys[1]][keys[2]]从这样的列表:keys = ["key1", "key2", "key3"]...
我尝试过以下方法:
keys = ["key1", "key2", "key3"]
d = {}
d_ref= d
for key_num, key in enumerate(keys):
if key_num < len(keys)-1:
d[key] = {}
d_ref = d[key]
else:
d_ref[key] = []
print(d)
Run Code Online (Sandbox Code Playgroud)
但结果如下:
{'key1': {}, 'key2': {'key3': []}}
我的目标是这个输出:
{'key1' : { 'key2' : { "key3" : [] } } }
感谢wim的回答让我得到了我想要的结果:
keys = ["key1", "key2", "key3"]
d = []
for key in reversed(keys):
d = {key: d}
print(d)
Run Code Online (Sandbox Code Playgroud)
只需一个简单的for循环即可
>>> d = {}
>>> for k in reversed(keys):
... d = {k: d}
...
>>> d
{'key1': {'key2': {'key3': {}}}}
Run Code Online (Sandbox Code Playgroud)
(编辑: OP在发布后更改了问题)如果您想要列表作为初始值,只需更改第一个作业:
>>> d = []
>>> for k in reversed(keys):
... d = {k: d}
...
>>> d
{'key1': {'key2': {'key3': []}}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |