2017-09-12 3 views
-2

リスト内のエントリを特定のパターンと一致させたいのですが。リスト名が可変であるところ。私はforループでこれをやりたい例えばリスト内の指定されたパターンと一致しないエントリを検索したいのですが、リスト名が変数です

set li {{1 2} {1 3} {-1 -1}} 

lsearch -all -inline -exact -not $li {-1 -1} 

回答:{1 2}、{1} 3。

しかし、私の問題は、 "li"という場所に変数名を付けたいということです。 liは変化するでしょう。

+0

問題の内容がわかりません。検索されているリストを組み立てること、またはリストをフィルタリングするためにパターンが使用されていますか?または、他の何か? ( '' lsearch''は本当にリストやパターンをどのように作成するか気にしません;すべてが物事を握る前に実行されます) –

+0

'' li "の代わりに変数名を指定したいと言うときは、 、 どういう意味ですか?あなたは最初の声明または2番目の声明を参照していますか? –

+0

こんにちは、私が使用したいリストは、インデックスに依存してforループが異なります。 – divya

答えて

0

あなたの質問は不明です。私はあなたがと言っていると仮定しています。 "li"の代わりに変数名を指定したいのですが、というのは、変数を使って別の変数の名前を指定したいということです。

あなたがsetを使用していることを行うことができます:あなたが[set $varname]を行うと

set varname li 
lsearch -all -inline -exact -not [set $varname] {-1 -1} 

は、Tclは最初$varnameのための "LI" を代用します。これにより、文はlsearch ... [set li] ...に変換され、[set li]$liと機能的に同じです。

関連する問題