假设你真正拥有的是一个集合(具有唯一元素的列表),你可以使用tcllib:
:: struct :: set intersect?set1 ......?
package require Tcl 8.0
package require struct::set
set list1 {a b c d h}
set list2 {c e f g h}
::struct::set intersect $list1 $list2
> c h
Run Code Online (Sandbox Code Playgroud)
没有命令,但是通常这样做的方法是在构造一个或多个列表时缓存元素,以节省时间。例如,给出以下内容:
foreach x {a b c d h} {
lappend list_x $x
}
foreach y {c e f g h} {
lappend list_y $y
}
Run Code Online (Sandbox Code Playgroud)
我会补充:
foreach x {a b c d h} {
lappend list_x $x
set cache($x) 1
}
foreach y {c e f g h} {
lappend list_y $y
if {[info exists cache($y)]} {
lappend list_xy $y
}
}
puts $list_xy
Run Code Online (Sandbox Code Playgroud)
输出:
c h
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7394 次 |
最近记录: |