1

lindex値に基づいて異なるリストをソートする方法を教えてください

Qstn:

xという配列変数があるとしましょう。

set $x(1) "4 5 7"

set $x(2) "1 3 9"

set $x(3) "9 1 5"

リストの最初の要素のソート順で配列をソートしたい。

lindex $x(2) 0 < lindex $x(1) 0 < lindex $x(3) 0

だからここで私が必要とする答えは $keys_sortd のような新しい変数です

echo $keys_sorted

2 1 3

私の質問が明確であることを願っています。一番簡単な方法を教えてください

4

2 に答える 2

2

@siyb は Tcl 8.6 の答えを持っています。8.5 の場合:

% foreach {key value} [array get x] {lappend y [list $key $value]}
% set y
{1 {4 5 7}} {2 {1 3 9}} {3 {9 1 5}}
% lsort -index {1 0} $y
{2 {1 3 9}} {1 {4 5 7}} {3 {9 1 5}}
% foreach elem [lsort -index {1 0} $y] {lappend sorted_keys [lindex $elem 0]}
% set sorted_keys
2 1 3
于 2013-11-13T15:36:26.903 に答える