Tcl-tk-tcl-lists
Tcl-リスト
リストは、Tclで利用可能な基本的なデータ型の1つです。 順序付けされたアイテムのコレクションを表すために使用されます。 同じリストに異なるタイプのアイテムを含めることができます。 さらに、リストには別のリストを含めることができます。
注意する必要がある重要なことは、これらのリストが文字列として完全に表され、必要に応じて個々のアイテムを形成するために処理されることです。 そのため、大きなリストを避け、そのような場合には;配列を使用します。
リストを作成する
リストの一般的な構文は次のとおりです-
set listName { item1 item2 item3 .. itemn }
# or
set listName [list item1 item2 item3]
# or
set listName [split "items separated by a character" split_character]
いくつかの例を以下に示します-
#!/usr/bin/tclsh
set colorList1 {red green blue}
set colorList2 [list red green blue]
set colorList3 [split "red_green_blue" _]
puts $colorList1
puts $colorList2
puts $colorList3
上記のコードが実行されると、次の結果が生成されます-
red green blue
red green blue
red green blue
リストへのアイテムの追加
リストにアイテムを追加するための構文は以下のとおりです-
append listName split_character value
# or
lappend listName value
いくつかの例を以下に示します-
#!/usr/bin/tclsh
set var orange
append var " " "blue"
lappend var "red"
lappend var "green"
puts $var
上記のコードが実行されると、次の結果が生成されます-
orange blue red green
リストの長さ
リストの長さの構文は以下のとおりです-
llength listName
リストの長さの例を以下に示します-
#!/usr/bin/tclsh
set var {orange blue red green}
puts [llength $var]
上記のコードが実行されると、次の結果が生成されます-
4
インデックスのリストアイテム
特定のインデックスでリスト項目を選択するための構文は以下のとおりです-
lindex listname index
インデックスのリストアイテムの例を以下に示します-
#!/usr/bin/tclsh
set var {orange blue red green}
puts [lindex $var 1]
上記のコードが実行されると、次の結果が生成されます-
blue
インデックスにアイテムを挿入
特定のインデックスにリストアイテムを挿入するための構文を以下に示します。
linsert listname index value1 value2..valuen
特定のインデックスにリストアイテムを挿入する例を以下に示します。
#!/usr/bin/tclsh
set var {orange blue red green}
set var [linsert $var 3 black white]
puts $var
上記のコードが実行されると、次の結果が生成されます-
orange blue red black white green
インデックスでアイテムを置き換える
特定のインデックスでリスト項目を置き換えるための構文は次のとおりです-
lreplace listname firstindex lastindex value1 value2..valuen
特定のインデックスのリストアイテムを置換する例を以下に示します。
#!/usr/bin/tclsh
set var {orange blue red green}
set var [lreplace $var 2 3 black white]
puts $var
上記のコードが実行されると、次の結果が生成されます-
orange blue black white
インデックスでアイテムを設定
特定のインデックスでリスト項目を設定するための構文は以下のとおりです-
lset listname index value
特定のインデックスでリスト項目を設定する例は以下のとおりです-
#!/usr/bin/tclsh
set var {orange blue red green}
lset var 0 black
puts $var
上記のコードが実行されると、次の結果が生成されます-
black blue red green
リストを変数に変換する
変数に値をコピーするための構文は以下のとおりです-
lassign listname variable1 variable2.. variablen
リストを変数に変換する例は以下のとおりです-
#!/usr/bin/tclsh
set var {orange blue red green}
lassign $var colour1 colour2
puts $colour1
puts $colour2
上記のコードが実行されると、次の結果が生成されます-
orange
blue
リストを並べ替える
リストをソートするための構文は以下のとおりです-
lsort listname
リストをソートするための例は以下のとおりです-
#!/usr/bin/tclsh
set var {orange blue red green}
set var [lsort $var]
puts $var
上記のコードが実行されると、次の結果が生成されます-
blue green orange red