我有两个清单:
set lista {5 6}
set listb {8 9}
Run Code Online (Sandbox Code Playgroud)
以下代码用于循环两个列表:
foreach listaelement listbelement $lista $listb {
puts $listaelement &listbelement
}
Run Code Online (Sandbox Code Playgroud)
我们如何使用foreach来实现输出:
lista中的第一个元素,listb中的
第一个元素,lista中的
第一个元素,listb中的
第二个元素,listb中的第二个元素,listb中的第二个元素,listb中的第一个元素,lista中的第二个元素,listb中的第二个元素,
5 8 5 9 6 8 6 9
只是嵌套循环并使用-nonewline应该给出你想要的输出:
foreach listelementa $lista {
foreach listelementb $listb {
puts -nonewline "$listelementa $listelementb "
}
}
puts ""
Run Code Online (Sandbox Code Playgroud)
注意:您需要在puts语句中使用引号来停止Tcl将第一个参数解释为通道ID.
Tcl允许您在foreach语句中引用多个列表
foreach listelementa $lista listelementb $listb {
puts -nonewline "$listelementa $listelementb "
}
puts ""
Run Code Online (Sandbox Code Playgroud)
然而,这给出5 8 6 9了它的输出 - 而不是你需要的.
编辑:我很确定当我回答输出被格式化为1行的问题时,如果你真的想要每行1行,那么你不需要-nonewlineon puts和尾随空格和final puts也可以去.