Если вы не используете Tcl 8.5, тогда вы можете использовать массивы. Обратите внимание, что массивы являются одномерными, но ключ - это произвольная строка, которая может использоваться для имитации многомерности:
array set foo {}
foreach first {a b c} {
foreach second {a b c} {
foreach third {1 2 3} {
lappend foo($first,$first$second) "$first$second$third"
}
}
}
parray data
и выведите его - обратите внимание: ключи массива, в отличие от ключей словаря, неупорядочены:
foreach key [array names foo] {
foreach elem $foo($key) {
puts "$key\t$elem"
}
}
Если вы получили ключи (например, 'b' и 'bc'), вы можете получить значение таким образом:
set key1 b
set key2 bc
foreach elem $foo($key1,$key2) {puts $elem}