如何在TCL中对嵌套字典进行排序

如何在TCL中对嵌套字典进行排序,tcl,Tcl,我在TCL中有一个嵌套字典,其中特定索引的值在子索引值处未排序,例如,在这个字典中,我想在排序时对55,21,36进行排序并移动子键,我还想在移动子键时对103344,3进行排序 我很困惑一个人是如何做这样的事情的。我不能使用lsort-index-stride,因为我的子字典不是一个扁平列表 a1,a2 {0,6 {103 55} 1,5 {344 21} 6,7 {3 36}} 预期输出1[基于21,36,55[最终子值]排序,55使用其键一直到最后] a1,a2 {1,5 {344 21

我在TCL中有一个嵌套字典,其中特定索引的值在子索引值处未排序,例如,在这个字典中,我想在排序时对55,21,36进行排序并移动子键,我还想在移动子键时对103344,3进行排序

我很困惑一个人是如何做这样的事情的。我不能使用lsort-index-stride,因为我的子字典不是一个扁平列表

a1,a2 {0,6 {103 55} 1,5 {344 21} 6,7 {3 36}}
预期输出1[基于21,36,55[最终子值]排序,55使用其键一直到最后]

a1,a2 {1,5 {344 21} 6,7 {3 36} 0,6 {103 55}}
a1,a2 {6,7 {3 36} 0,6 {103 55} 1,5 {344 21}}
预期输出2[基于344,3103,344的排序一直到最后,并带有其键]

a1,a2 {1,5 {344 21} 6,7 {3 36} 0,6 {103 55}}
a1,a2 {6,7 {3 36} 0,6 {103 55} 1,5 {344 21}}

我不太明白你想做什么。在排序之后,你能给出不同的输入和相应的预期输出吗,以及到目前为止你做过的任何尝试吗?在预期输出中添加,如果我不是超级清晰,请告诉我。好的,现在它是清晰的。您是否尝试查看了
lsort
-command
标志?它允许您定义自己的比较过程。否则,到目前为止您是否有任何尝试?听起来派生排序规则键将是一种可行的方法。您可以告诉
lsort
给您找到的顺序(即索引的混乱),然后使用该顺序修复实际数据。。。