4

lsearchコマンド-start indexにはオプションの1つがあります

-startindex リストは位置indexから検索さますindexの値がendの場合、それはリストの最後の要素を参照し、 end - integerはリストの最後の要素から指定された整数オフセットを引いたものを参照します。

-endと一緒に使いたい-startです。どのようにそれを行うことができますか?-endこれは、lsearch返されたリストのインデックス以上のインデックスを破棄することで実行できます。しかし、もっと良い方法はありますか?

4

1 に答える 1

4

私はあなたの場合、あなたlrangeが返されたくない要素なしで検索されているリストのコピーを作成するために使用したいと思うでしょう。

lsearch [lrange $theList $start $end] $searchTerm

このオプションの本当の目的は、-start以前に見つかった一致をスキップできるようにすることですが、-allオプション(検索語に一致する可能性のあるすべての場所lsearchのリストを返す)があるため、あまり役に立ちません。これは少しこのように使用されました:

for {set idx -1} {[set idx [lsearch -start [incr idx] $list $term]] >= 0} {} {
    # Process the match index...
    puts "found $term at $idx"
}

そして今、あなたは書くでしょう:

foreach idx [lsearch -all $list $term] {
    puts "found $term at $idx"
}
于 2012-08-10T08:27:34.147 に答える