python - 从嵌套字典值(树)创建列表列表
问题描述
我使用层次聚类来创建一棵聚类树。
这导致:
dic = {6: {2: 2, 5: {3: 3, 4: {0: 0, 1: 1}}}}
根据集群列出列表:
[ [[6]],
[[2], [5]],
[[2], [3], [4]],
[[2], [3], [0], [1]] ]
根据值列出列表:
[ [[2, 3, 0, 1]],
[[2], [3, 0, 1]],
[[2], [3], [0, 1]],
[[2], [3], [0], [1]] ]
我想要结束的是“根据值列出列表”。
谢谢
解决方案
我只是为此花了太多时间:
def list_of_list(d):
if type(d)!=dict:
return [[[d]]]
results=[]
for k,value in d.items():
results.append(list_of_list(value))
L=len(max(results,key=len))
for i in range(len(results)):
j=len(results[i])
results[i].extend([results[i][j-1]]*(L-j))
outputtop=[v for result in results for v in result[0][0]]
output=[[outputtop]]
for l in range(L):
output.append([ val for result in results for val in result[l]])
return output
推荐阅读
- python - 具有非线性关系的连续变量的预测模型
- python - (Python Selenium) 有没有办法在单击按钮之前读取按钮上方的 html 元素?
- mysql - MySQL为每日报告创建自定义日期范围
- sql - 在redshif中创建动态数字序列视图
- c# - 为什么我的方法从 Page_Load() 被调用两次(或更多)
- html - CSS 使表格高度相等,包括拉伸它们的行跨度垂直标题?
- javascript - 如何读取嵌入到 html 中的 PDF 文件?使用java进行硒测试
- java - 无法将 javafx 应用程序连接到 mysql 数据库
- javascript - JSHint 抑制可选链接的错误
- java - Java 错误:不兼容的类型:不存在类型变量 T 的实例,因此可选
符合 Iterable