Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从嵌套字典值(树)创建列表列表_Python_List_Dictionary_Recursion_Nested - Fatal编程技术网

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我想以最后一个代码块中显示的整个列表结束。到目前为止,你尝试了什么?我很抱歉花了很长时间,非常感谢我对此非常满意!