假设我有一个这样的列表:{{1 2 3} {4 5 6} {7 8 9}}我想创建一个由每个嵌套列表的第一个元素组成的新列表:{1 4 7}.我知道如何使用'foreach'在几行中做到这一点,但这是一种更优雅的方式,还是更好的内置功能呢?
小智 5
如果您正在使用Tcl 8.6,那么有一个lmap命令可以映射列表并可用于您的任务:
%set a {{1 2 3} {4 5 6} {7 8 9}}
{1 2 3} {4 5 6} {7 8 9}
%lmap x $a {lindex $x 0}
1 4 7
Run Code Online (Sandbox Code Playgroud)
该lmap命令遍历列表$a,将当前处理的列表项分配给给定变量(x在示例中)并调用命令(lindex $x 0在示例中).