#tcl
#tcl
Вопрос:
Как мне преобразовать список в строку в Tcl?
Ответ №1:
скорее всего, вам нужно присоединиться, однако в зависимости от того, что вы пытаетесь сделать, это может быть необязательно.
что угодно в TCL может быть обработано как строка в любое время, следовательно, вы можете просто использовать свой список как строку без явного преобразования
Ответ №2:
Если вам нужно просто содержимое, вы можете поместить $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
Комментарии:
1. Если вам также нужно сгладить многоуровневые списки, взгляните на пакет Tcllib struct::list и подкоманду flatten. tcllib.sourceforge.net/doc/struct_list.html
Ответ №3:
set list {a b c d e f}
for {set i 0} {$i<[llength $list]} {incr i} {
append string [lindex $list $i]
}
puts $string
Ответ №4:
Сгладить список с помощью классов:
set list { 1 2 3 4 { 5 6 { 7 8 9 } } 10 }
package require struct::list
struct::list flatten -full $list
Ответ №5:
set a { 1 2 3 4 { 5 6 { 7 8 9 } } 10 }
set rstr [regexp -all -inline {S } $a]
puts $rstr
Ответ №6:
Используйте команду list.
В качестве альтернативы смотрите раздел «разделить»: http://wiki.tcl.tk/1499
split "comp.unix.misc"
возвращает «comp unix разное»
Комментарии:
1. Вы предоставляете способы создания списка из строки. Напрашивается обратный вопрос — как перейти из списка в строку.