4

INITIAL_ARRAYです_

Key -> Value
B      8
C     10
A      5
E      3
D      1

キーに基づいてソートされた配列を取得するには、

set sorted_keys_array [lsort [array names INITIAL_ARRAY]]

出力を取得するには

Key -> Value
A     5
B     8
C     10
D     1
E     3

同様に、以下の出力のように、キーのに基づいてソートされたtcl配列を取得するにはどうすればよいですか?

Key -> Value
 C     10
 B     8 
 A     5
 E     3
 D     1
4

2 に答える 2

10

Tcl 8.6 以降では、次のことができます。

lsort -stride 2 -integer [array get a]

これにより、値でソートされたキーと値のペアのフラットリストが生成されます。

lsortオプションを取得する前は-stride、フラット リストのarray get戻り値からリストのリストを作成し、-indexオプション forを使用して並べ替える必要がありましたlsort

set x [list]
foreach {k v} [array get a] {
    lappend x [list $k $v]
}
lsort -integer -index 1 $x
于 2013-02-08T10:24:41.597 に答える