Python 从嵌套字典值(树)创建列表列表
我已经使用分层集群创建了一个集群树 这导致:Python 从嵌套字典值(树)创建列表列表,python,list,dictionary,recursion,nested,Python,List,Dictionary,Recursion,Nested,我已经使用分层集群创建了一个集群树 这导致: 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]] ] 我想
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
flat
展平输入数组walk
递归地遍历树并解压缩值
最终列表理解,生成与提取的值数相同长度的数组每个数组元素都是一个数组,其中包含来自l(
l[i:i+1]
)的x个单值数组,这些数组与l(l[x:
)中其余元素的数组片连接在一起
dic={6:{2:2,5:{3:3,4:{0:0,1:1}}
flat=lambda l:[子列表中的项目在l中,子列表中的项目在l中]
walk=lambda节点:平坦([walk(v)if type(v)为dict else[v]for v in node.values()]))
l=步行(dic)
打印([[l[i:i+1]表示范围(x)中的i]+[l[x:]表示范围(len(l))]))
你想以4个列表结束,还是只想以第一个或最后一个列表结束?@kubatucka我想以最后一个代码块中显示的整个列表结束。到目前为止,你尝试了什么?我很抱歉花了很长时间,非常感谢我对此非常满意!