5

私はTclに次のようなリストを持っています:

set list1 {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9}

リストのインデックスに基づいて要素を取得するにはどうすればよいですか? 例えば:

このリストの 2 番目の要素を取得したいですか? またはこのリストの6番目のもの?

4

3 に答える 3

9

分割してループするだけですか?

foreach n [split $list1 ","] {
    puts [string trim $n]  ;# Trim to remove the extra space after the comma
}

[split $list1 ","]を含むリストを返します0x1 { 0x2} { 0x3} { 0x4} { 0x5} { 0x6} { 0x7} { 0x8} { 0x9}

ループはリストのforeach各要素を繰り返し処理し、現在の要素を に割り当て$nます。

[string trim $n]次に、末尾のスペース (ある場合) を削除し、結果を出力します。


編集:

リストのn番目の要素を取得するには、次のlindex関数を使用します。

% puts [lindex $list1 1]
0x2
% puts [lindex $list1 5]
0x6

インデックスは 0 ベースなので、リストからプルする必要があるインデックスから 1 を削除する必要があります。

于 2013-10-02T12:18:00.230 に答える