语法:tcl语法速查
差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| 语法:tcl语法速查 [2026/04/08 09:41] – [6.5 set_bits get_bits] user01 | 语法:tcl语法速查 [2026/06/10 13:54] (当前版本) – [9.10 dict 按值排序] user01 | ||
|---|---|---|---|
| 行 1068: | 行 1068: | ||
| + | ==== - dict 按值排序 ==== | ||
| + | <code tcl> | ||
| + | set d {a 10 b 3 c 25 d 1} | ||
| + | |||
| + | # 1. 生成嵌套列表 {{a 10} {b 3} {c 25} {d 1}} | ||
| + | set pairs {} | ||
| + | dict for {k v} $d { | ||
| + | lappend pairs [list $k $v] | ||
| + | } | ||
| + | |||
| + | # 2. 按第2列(值)数字排序 | ||
| + | set sortedPairs [lsort -integer -index 1 $pairs] | ||
| + | |||
| + | # 3. 展开回扁平字典列表 | ||
| + | set flat [concat {*}$sortedPairs] | ||
| + | set newDict [dict create {*}$flat] | ||
| + | puts $newDict | ||
| + | </ | ||
| + | |||
| + | 封装成proc \\ | ||
| + | <code tcl> | ||
| + | proc sortDictByVal {dict args} { | ||
| + | set pairs {} | ||
| + | dict for {k v} $dict {lappend pairs [list $k $v]} | ||
| + | return [concat {*}[lsort {*}$args -index 1 $pairs]] | ||
| + | } | ||
| + | # 调用示例 | ||
| + | set sortedDict [sortDictByVal $d -integer -decreasing] | ||
| + | </ | ||
| ==== - dict merge, 相当于copy ==== | ==== - dict merge, 相当于copy ==== | ||
语法/tcl语法速查.1775612465.txt.gz · 最后更改: 2026/04/08 09:41 由 user01