我想根据动态列表进行一些排序。让我来解释 我使用TCL 8.4版,我不能改变,必须使用Tcl中的动态列表排序
list1 = {{a b c} {c b c a} {b b a}} ..... 1st input data
表1是有3个成员形成不同类型的子列表以任意顺序,这将一个Tcl列表甚至每次都会改变。例如接下来的时间,单1将是:
list1 = {{c} {b c a} {b c} {a c a c}} ..... 2nd input data (for next time consideration)
现在我想给他们以这样的方式进行排序,如果我使用他们周围循环或lsort
或string compare
或任何其他Tcl命令,新的TCL列表应包含基于优先级的个人成员。就像我们有上升/下降一样。 请注意,这两种情况下,各个子列表长度都在增加和减少,同时从a,b,c也继续旋转。
在我来说,我想“一”拥有最高优先级,然后是“B”,然后选择“C”(A-> B-> C)
所以输出为第一次重复的处理完成后应为:
$> puts $new_list1
$> {a a a} # as out of 3 sublists a is present in them and it gets highest priority.
同样,处理后输出2日反复做应该是:
$> puts $new_list1
$> {c a b a} # as you can see that list1 1st element is c so it gets output as is, second sublist has b c and a so `a` gets outputted, 3rd sublist is b and c so `b` gets outputted
让我知道你的想法是什么。
在此先感谢!
它可以帮助想创建的返回值的过程方面下一次迭代(或者耗尽时返回代码中断)并执行while {set list1 [GetNextIterationValue]; ...}去检查一切。 –
@ acheong87我肯定会尝试你的解决方案,但上面提到的这些迭代只是这些列表将给予我的例子,我不需要明确地设置它们,那就是我的输入数据。 – user2643899
@Donal Fellows你可以给我一个上面我的问题陈述的示例代码片段。 – user2643899