我想根据动态列表进行一些排序。让我在下面解释一下,我使用的是 tcl 版本 8.4,我无法更改,必须使用它
list1 = {{a b c} {c b c a} {b b a}} ..... 1st input data
列表 1 是一个 tcl 列表,它有 3 个成员,它们以任意顺序形成不同类型的子列表,甚至每次都会改变。例如下一次,列表 1 将是:
list1 = {{c} {b c a} {b c} {a c a c}} ..... 2nd input data (for next time consideration)
现在我想以这样一种方式对它们进行排序,如果我在它们周围使用循环或lsort
或string compare
或任何其他 tcl 命令,新的 tcl 列表应该包含基于优先级的单个成员。就像我们有上升/下降一样。请注意,在这两种情况下,各个 sub_lists 的长度都在增加和减少,同时从 a、b、c 开始也不断旋转。
就我而言,我希望“a”具有最高优先级,然后是“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.
同样,在第二次迭代完成处理后的输出应该是:
$> 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
让我知道你的想法。
提前致谢 !