python - 从二维列表构建树层次结构
问题描述
我有一个看起来像这样的二维列表:
[
["elem1","elem2"],
["elem1","elem3"],
["elem4","elem7"],
...
]
我想创建一个嵌套字典,然后看起来像这样:
[{"elem1":["elem2","elem3"]},{"elem4":"elem7"}]
因此,初始子列表之一中的索引越高,生成的树中的层次位置就越高。你会如何在 python 中解决这个问题?你怎么称呼它为“树化”?我觉得必须有一个包可以做到这一点。
解决方案
这是可以帮助您获得所需输出的代码
data = [
["elem1","elem2"],
["elem1","elem3"],
["elem4","elem7"],
]
maplist = {}
for a in data:
if a[0] in maplist:
maplist[a[0]].append(a[1])
else:
maplist[a[0]] = [a[1]]
print(maplist)
要根据列表项进行排序,您可以使用以下代码
sorted_items = sorted(maplist.items(), key = lambda item : len(item[1]), reverse=True)
推荐阅读
- python-3.x - ipysheet 和数据框。选中复选框时如何修改ipysheet中的值
- wordpress - WordPress 古腾堡 .updateBlock
- c++ - 将包含在 2 个链表中的相同值写入另一个链表
- c# - SSIS 脚本组件读取 Web 数据但不创建 Output0Buffer 对象
- javascript - 多个 mongo 查询然后返回响应
- python - 尝试从表单 django 上传图像时出错
- facebook - 嵌入 Facebook 帖子自动高度宽度 = 300px
- r - 使用 data.table 获取跨多个列的唯一值列表
- jquery - Jquery UI Datepicker 日历未按预期工作
- php - 如何在不是模型的类上实现 getXAttribute