0

我有两个包含整数的不同长度的列表。现在列表中有重复项。查看两个列表时都有重复项。例如

set ListA [list 3 4 9 1 2 10 6 ]
set ListeB [list 34 43 9 12 2 10 61 88 23 48]

是否有一种有效的快速方法来创建一个仅包含两个原始列表中存在的数字的新列表?在这种情况下: [ 9 2 10 ]

我不想使用嵌套循环,因为列表可能很大。我首先想到的是对它们进行排序,然后逐个元素地比较它们。但是,这仅在两个列表长度相同时才有效....

4

1 回答 1

2

请参阅此问题此处的文档。这适用于 Tcl 8.0,并且仍然适用于 8.5(我很确定 8.6 也是如此)。

% package require Tcl
% package require struct::set

% set ListA [list 3 4 9 1 2 10 6 ]
% set ListeB [list 34 43 9 12 2 10 61 88 23 48]
% ::struct::set intersect $ListA $ListeB
9 2 10
于 2013-06-20T18:00:08.480 回答