如何根据 TCL 数组的键值对其进行排序?

2023-12-23

The INITIAL_ARRAY is

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 数组values键,如下面的输出?

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

从 Tcl 8.6 开始,你可以这样做

lsort -stride 2 -integer [array get a]

这会产生一个flat按值排序的键/值对列表。

Before lsort获得了-stride选项,您必须求助于从平面列表中构建列表列表array get返回,然后使用排序-index选项lsort:

set x [list]
foreach {k v} [array get a] {
    lappend x [list $k $v]
}
lsort -integer -index 1 $x
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据 TCL 数组的键值对其进行排序? 的相关文章

随机推荐