我有像这样包含项列出的清单和值:让嵌套的字典,unflatten
[
['mounts:device', '/dev/sda3'],
['mounts:fstype:[0]', 'ext1'],
['mounts:fstype:[1]', 'ext3']
]
那么我可以列表中很容易地改变这个
(名单的arent分隔“:”)
[
['mounts:device', '/dev/sda3'],
['mounts:fstype[0]', 'ext1'],
['mounts:fstype[1]', 'ext3']
]
任何适合对于这个问题更好:
问题是创建一个字典:
{
'mounts': {
'device': '/dev/sda3',
'fstype': [
'ext1',
'ext3'
]
}
它也应该可以在列表中列出了例如:
['mounts:test:lala:fstype[0][0]', 'abc']
或
['mounts:test:lala:fstype:[0]:[0]', 'abc']
这是我到目前为止有:基于
def unflatten(pair_list):
root = {}
for pair in pair_list:
context = root
key_list = pair[0].split(':')
key_list_last_item = key_list.pop()
for key in key_list:
if key not in context:
context[key] = {}
context = context[key]
context[key_list_last_item] = pair[1]
return root
这个回答https://stackoverflow.com/a/18648007/5413035,但根据要求,我需要recursivness和列表中的组合
预先感谢
什么问题?请参阅:[我如何问一个好问题?](http://stackoverflow.com/help/how-to-ask) –
问题是如何实现unlatlatten到嵌套字典下面的函数不工作的列表 – Skeec
列表示例中的列表应该是什么样的字典?请[编辑]你的问题,并告诉我们。 – martineau