我有三个清单:
set l1 {1 2 3}
set l2 {'one' 'two' 'three'}
set l3 {'uno' 'dos' 'tres'}
Run Code Online (Sandbox Code Playgroud)
我想建立这个清单:
{{1 'one' 'uno'} {2 'two' 'dos'} {3 'three' 'tres'}}
Run Code Online (Sandbox Code Playgroud)
在python,我会使用类似内置函数的东西zip.我该怎么办tcl?我查看了'concat'的文档,但没有找到先验相关的命令.
lmap a $l1 b $l2 c $l3 {list $a $b $c}
Run Code Online (Sandbox Code Playgroud)
列表映射lmap是一种映射命令,它从一个或多个列表中获取元素并执行脚本。它创建一个新列表,其中每个元素都是脚本一次执行的结果。
该命令是在 Tcl 8.6 中添加的,但可以轻松添加到早期版本中。
如果你还没有使用Tcl 8.6(你可以使用的地方lmap),你需要这个:
set zipped {}
foreach a $l1 b $l2 c $l3 {
lappend zipped [list $a $b $c]
}
Run Code Online (Sandbox Code Playgroud)
这实际上lmap对你有用,但它是8.6中的新功能.