While it is always better to retain the List Structure (where required) through the intermediate steps, you could something like this to restructure a list.

I wouldn’t encourage this approach though

reconstructStructure.dyn (11.2 KB)

```
def reconstruct (lst01:var[]..[],lst02:var[]..[])
{
cnt01 = List.Count(List.Flatten(lst01<1>,-1)<1>);
cnt02 = List.Count(List.Flatten(lst01<1><2>,-1)<1><2>);
cnt03 = List.Count(List.Flatten(lst01<1><2><3>,-1)<1><2><3>);
cnt04 = List.Count(List.Flatten(lst01<1><2><3><4>,-1)<1><2><3><4>);
cnt05 = List.Count(List.Flatten(lst01<1><2><3><4><5>,-1)<1><2><3><4><5>);
chp01 = List.Chop(lst02,cnt01);
chp02 = List.Chop(chp01<1>,cnt02<1>);
chp03 = List.Chop(chp02<1><2>,cnt03<1><2>);
chp04 = List.Chop(chp03<1><2><3>,cnt04<1><2><3>);
chp05 = List.Chop(chp04<1><2><3><4>,cnt05<1><2><3><4>);
ind01 = List.Flatten([cnt01,cnt02,cnt03,cnt04,cnt05]<1>,-1);
ind02 = List.IndexOf(List.AllTrue((ind01==1)<1>),true)-1;
return List.GetItemAtIndex([chp01,chp02,chp03,chp04,chp05],ind02);
};
```