【发布时间】:2017-01-20 07:59:07
【问题描述】:
所以我手头有点问题。我有一个元组列表(由级别编号和消息组成),最终将成为 HTML 列表。我的问题是,在这种情况发生之前,我想将元组值转换为嵌套字典的字典。所以这里是例子:
# I have this list of tuples in format of (level_number, message)
tuple_list = [(1, 'line 1'), (2, 'line 2'), (3, 'line 3'), (1, 'line 4')]
# And I want to turn it into this
a_dict = {
'line 1': {
'line 2': {
'line 3': {}
}
},
'line 4': {}
}
任何帮助都将不胜感激,只要它是有效的 Python 3。谢谢!
【问题讨论】:
-
我假设您的意思是按 level_number 的结果字典中的深度?所以元组的第一个元素为 1 意味着它在字典的根级别。但是,“更深层次”嵌套在“第 1 行”而不是“第 4 行”中的信息从何而来?对不起,如果我没有在这里识别模式
-
第 1 行、第 2 行和第 3 行之间可以分组的关系是什么?例如它们可以被视为对象并相互关联吗?
-
我想明确一点,您遇到问题的原因是您的数据结构。如果您对此数据有任何控制权,请更改您的数据结构,而不是在这里实施任何解决方案。如果您无法控制数据,则可以将其视为一棵树。构建一个跟踪其父母和孩子的
class TreeNode可能更明智。 -
对@Minato,是的,level_number 可以被认为是深度。深度与嵌套有关。字符串与排序无关。因此,如果一个值的深度为 3,它将嵌套在其之前深度为 2 的最近的值之下。
-
对于@AdamSmith,这与 Markdown 处理项目有关,所以不,我对给出的信息的控制权为零。如果您愿意提出一个示例来说明“TreeNode”的含义,那就太好了。
标签: python list python-3.x dictionary tuples