0

整数を含む長さが異なる 2 つのリストがあります。リスト内に重複があります。両方のリストを見ると重複があります。例えば

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 に答える