2017-10-30 23 views
0

{{1 2 3} {4}} {7 8 9}}のようなリストがあります。ネストされたリストのそれぞれの最初の要素で作られたリスト:{1 4 7}。私は 'foreach'を使っていくつかの行でそれを行う方法を知っていますが、それはよりエレガントなやり方、あるいはより良いことに、それを行う組み込み関数ですか?ありがとう、tcl内のリストのリストから最初の要素のリストを作成する

オマー。

答えて

4

あなたはTclの8.6を使用している場合は、リストのマッピングを行い、あなたの仕事のために使用することができるlmapコマンドがあります:

%set a {{1 2 3} {4 5 6} {7 8 9}} 
{1 2 3} {4 5 6} {7 8 9} 
%lmap x $a {lindex $x 0} 
1 4 7 

lmapコマンドの繰り返し処理がリスト$aを通じて、現在処理中のリストを割り当て項目を指定された変数(この例ではx)に変更し、コマンド(例ではlindex $x 0)を呼び出します。

1

あなたが最初の要素を検索することがわかっているので、foreachを使用するための最適なソリューションです。複雑さはあなたの場合O(1)になります。固定されているインデックスの最初の値にアクセスするだけでいいからです。

関連する問題