如何在Tcl中以指定格式显示字典且避免使用proc?
实现方法
完全可行,以下是几种无需自定义proc的简短实现方式:
方法一(推荐,最简洁)
利用dict map遍历字典的键值对,结合format生成目标格式的片段,最后用join拼接:
puts [join [dict map {k v} $dict1 {format "|%s %s|" $k $v}] " "]
dict map {k v} $dict1 {...}:遍历字典dict1的每个键k和值v,对每一组键值对执行花括号内的格式化操作,生成包含|key value|格式字符串的列表。join ... " ":将列表中的每个格式化片段用空格连接成最终字符串。
方法二(兼容更早版本Tcl)
如果使用的Tcl版本低于8.5(不支持dict map),可以用dict for遍历并收集片段:
set segments {} dict for {k v} $dict1 {lappend segments "|$k $v|"} puts [join $segments " "]
dict for循环遍历字典的键值对,将每个格式化后的片段添加到列表segments中,最后通过join拼接输出。
内容的提问来源于stack exchange,提问作者Theoretical Physics
相关产品推荐
相关产品推荐

