语法:tcl语法速查
差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| 语法:tcl语法速查 [2026/04/08 09:27] – [6.5 com_number set_bits get_bits] user01 | 语法:tcl语法速查 [2026/06/10 13:54] (当前版本) – [9.10 dict 按值排序] user01 | ||
|---|---|---|---|
| 行 530: | 行 530: | ||
| default { set ret 0000 } | default { set ret 0000 } | ||
| } | } | ||
| - | # set ret [format " | ||
| return $ret | return $ret | ||
| } | } | ||
| 行 539: | 行 538: | ||
| for {set i 0} {$i< | for {set i 0} {$i< | ||
| set tmp [string range $hex_value $i $i] | set tmp [string range $hex_value $i $i] | ||
| - | #set bins [string cat $bins [format " | ||
| set tmp [h2b $tmp] | set tmp [h2b $tmp] | ||
| set bins " | set bins " | ||
| 行 558: | 行 556: | ||
| for {set i 0} {$i< | for {set i 0} {$i< | ||
| set tmp [string range $bins [expr 0+$i*4] [expr 3+$i*4]] | set tmp [string range $bins [expr 0+$i*4] [expr 3+$i*4]] | ||
| - | #set hexs [string cat $hexs [format " | ||
| set tmp [format " | set tmp [format " | ||
| set hexs " | set hexs " | ||
| 行 1071: | 行 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语法速查.1775611634.txt.gz · 最后更改: 2026/04/08 09:27 由 user01