Tcl-tk-tcl-lists

提供:Dev Guides
移動先:案内検索

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