【发布时间】:2019-03-07 22:04:21
【问题描述】:
我有以下列表:
set w {1 2 3 4 5 6 7}
set x {1 2 3 4 5 8 9}
set y {1 2 3 4 0 9 1}
set z {1 2 3 4 5 6 7}
我想比较所有列表 - w.r.t 对应的索引 - 并找出共同元素并将这些共同元素附加到新列表中。如果我比较上面的列表,我发现1 2 3 4 在所有列表中都很常见并且具有相同的索引,所以我的输出应该是:
{1 2 3 4}
如果没有公共元素(即使在第 0 个索引处),我的新列表将为空。
我首先创建一个列表列表:
set l1 [list $w $x $y $z]
然后我创建一个嵌套循环来比较列表并提取我的共同元素,我将使用列表'x'作为我的参考列表:
for {set j 0} {$j < [llength $x]} {incr j} {
for {set i 1} {$i < [llength $l1]} {incr i} {
set a [lindex [lindex $l1 $i] $j]
if {$a == [lindex $x $j] && [lindex $l2 $j] == {}} {
lappend l2 $a
} else {
break
}
}
}
我得到的是:
1 2 3 4 5
【问题讨论】:
标签: tcl