tcl dictionary
1. 创建字典——set/create
- dict create key1 value1 ... keyn valuen [multi keys/values]
- dict set dict_name key value [single key/value]
- dict set/create live demo
2. 获取字典key的value——get
3. 字典key是否存在——exists
4. 字典键值对数——size
5. 获取字典键/值——keys/value
6. 字典key值追加字符串——append
7. 获取除指定key外的键值——remove
8. 删除字典键值对——unset
9. 字典整合——merge
10. 字典value加减操作——incr
11. 字典键值替换——replace
12. 字典键值过滤——filter
- dict filter dict_name key patterm
- dict filter dict_name value pattern
- dict filter dict_name script
- dict filter live demo
Appendix
1. dict set/create
# tcl dictionary
# dict set command
# dict set每次设置一对键值,多次对同一个字典设置,形成多对键值
dict set my_dict1 a 1
puts $my_dict1
dict set my_dict1 b 2
puts $my_dict1
# dict create command
# dict creat keyn valuen,没有dict_name,配合set dict_name [dict create key1 value1 ... keyn valuen]
set my_dict2 [dict create name1 "SQ" name2 "KingR" name3 "Sinri"]
puts [dict get $my_dict2 name1]
2. dict get
# dict get command, key name不需要加$符号
set my_dict {a 1 b 2 c 3 d 4 e 5}
puts [dict get $my_dict a]
puts [dict get $my_dict c]
puts [dict get $my_dict e]
3. dict exists
# dict exists command, key name不需要加$符号
set my_dict {a 1 b 2 c 3 d 4 e 5}
puts [dict exists $my_dict a]
puts [dict exists $my_dict f]
4. dict size
# dict size command
set my_dict {a 1 b 2 c 3 d 4 e 5}
puts [dict size $my_dict]
5. dict keys/value
# dict keys/value command
set my_dict [dict create name1 SQ name2 KingR name3 Lisa]
puts $my_dict
puts "my_dict keys are: [dict keys $my_dict]"
puts "my_dict value are: [dict value $my_dict]"
6. dict append
# dict append dict_name key string
set mydict [dict create name1 SQ name2 Lisa name3 Sirin name4 Coco]
puts $mydict
# single key/value pair
dict append mydict name1 " Chuang"
puts [dict get $mydict name1]
7. dict remove
# dict remove dict_name keys usage
set mydict {SQ 1 Lisa 2 Lina 3 Sirin 4}
# dict keys
puts [dict keys $mydict]
# dict values
puts [dict value $mydict]
# remove specific key
puts [dict remove $mydict SQ]
# original dict
puts $mydict
8. dict unset
# dict unset dict_name keys usage
set mydict {SQ 1 Lisa 2 Lina 3 Sirin 4}
# dict keys
puts [dict keys $mydict]
# dict values
puts [dict value $mydict]
# remove specific key
puts [dict unset mydict Lisa]
# original dict
puts $mydict
9. dict merge
# dict merge dict1 dict2
set mydict1 {SQ 1 Lisa 2 Lina 3 Sirin 4}
set mydict2 {bk1 economist bk2 news bk3 GQ}
puts [dict merge $mydict1 $mydict2]
10. dict incr
# dict incr dict_name key usage
set mydict {a 1 b 2 c 3}
puts [dict incr mydict a 5]
puts [dict incr mydict b 4]
puts [dict incr mydict c 3]
11. dict replace
# dict replace dict_name key value
set mydict {a 1 b 2 c 3}
puts [dict replace $mydict a 6]
puts [dict replace $mydict d 4]
12. dict filter
# dict filter usage
set mydict {anny 1 bon 2 cidy 3 amani 4 beyond 5 canthy 6}
# key filter
puts [dict filter $mydict key a*]
# value filter
puts [dict filter $mydict value 4]
# script solution
puts [dict filter $mydict script {var1 var2} {expr {$var2 > 3}}]
puts [dict filter $mydict script {var1 var2} {expr {$var1 eq "anny"}}]
