2017-11-21 30 views
0

リストがある場合、リストアイテムは他のファイルから取得されます。これらの動的に設定するために、他のより良い構造があり、私は疑問に思うTCLで動的配列の値を設定する方法は?

set test elment1 
array set $test {4 d} 

:私は、キーと値を追加したい場合は

set lista [element1 element2 element3 ...] 
foreach item $lista { 
    array set $item {1 a 2 b 3 c} 
} 

:私は、私はこれを行う、配列として、すべてのリスト項目を設定したいですアレイ?ありがとう! dictを使用して

+1

実際の問題は何ですか?あなたの例は、いくつかのケースでは動作し、他のものでは動作しませんが、より良いもの(良いものは常に相対的に良いもの)についてアドバイスするためにどのような問題が発生するのかを知る必要があります。 Tcl配列は、(local)* names *の構造体であり、値の構造体ではありません。値の構造が必要な場合、 'dict'はあなたが望むものに近いかもしれません。 –

答えて

0

は、あなたが探している柔軟なデータ構造を提供します:

set lista [list elem1 elem2 elem3] 
set initial_map {1 a 2 b 3 c} 

set d [dict create] 
foreach elem $lista { 
    dict set d $elem $initial_map 
} 
puts $d 
# => elem1 {1 a 2 b 3 c} elem2 {1 a 2 b 3 c} elem3 {1 a 2 b 3 c} 

puts [dict get $d elem2 2] 
# => b 

# add a new key-value to "elem3" 
dict set d elem3 4 d 
puts $d 
# => elem1 {1 a 2 b 3 c} elem2 {1 a 2 b 3 c} elem3 {1 a 2 b 3 c 4 d} 

# manipulate the "sub-dictionaries" 
puts [dict keys [dict get $d elem3]] 
# => 1 2 3 4 
関連する問題