用户工具

站点工具


语法: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
 +</code>
 +
 +封装成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]
 +</code>
 ==== - dict merge, 相当于copy ==== ==== - dict merge, 相当于copy ====
  
语法/tcl语法速查.1775612465.txt.gz · 最后更改: 2026/04/08 09:41 由 user01

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki