如何在Tcl中将列表转换为字符串?
答案 0 :(得分:17)
你最想要的是join但是根据你想要做的事情,这可能没有必要。
anything in TCL is able to be treated as a string at anytime,因此您可以将列表用作字符串而不进行明确的转换
答案 1 :(得分:5)
如果您只想要内容,可以输入$ listvar,它会将内容写成字符串。
您可以将列表展平一个级别,或者使用join来插入一个分隔符,如上面的jk所示。
示例:
% set a { 1 2 3 4 { 5 6 { 7 8 9 } } 10 }
1 2 3 4 { 5 6 { 7 8 9 } } 10
% puts $a
1 2 3 4 { 5 6 { 7 8 9 } } 10
% join $a ","
1,2,3,4, 5 6 { 7 8 9 } ,10
% join $a
1 2 3 4 5 6 { 7 8 9 } 10
答案 2 :(得分:1)
set list {a b c d e f}
for {set i 0} {$i<[llength $list]} {incr i} {
append string [lindex $list $i]
}
puts $string
答案 3 :(得分:1)
使用类来展平列表:
set list { 1 2 3 4 { 5 6 { 7 8 9 } } 10 }
package require struct::list
struct::list flatten -full $list
答案 4 :(得分:-1)
set a { 1 2 3 4 { 5 6 { 7 8 9 } } 10 }
set rstr [regexp -all -inline {\S+} $a]
puts $rstr
答案 5 :(得分:-6)