- 7.2 字典的基本结构(dict get)
- 7.3 创建和更新字典
- 7.4 检测字典(size、exists、keys、for)
- 7.5 更新字典中的值
- 7.6 使用嵌套字典
字典:
- 给像列表这样的集合每个元素指定一个独有的名字,通过名字访问元素。
- 一个有序的集合,字典会维护关键字的顺序,可按顺序遍历它们。
- 像有偶数个元素的列表,奇数位存储名字(关键字)。
- 与数组的区别:数组是变量的无序集合,而不是值的集合,而且不能嵌套。
- 命令:
dict get dictionary key ?key ...?
作用:返回字典中给定key对应的值,多个key取嵌套字典的值。% set lum {name w0shishabi action eat} name w0shishabi action eat % dict get $lum action eat
- 在字典中查找一个值是很快速的,字典还可用作有序哈希表。
-
命令:
dict create key value ?key value ...?
作用:用给定的key和value创建字典。如果有相同的key,存储最后一次对应value。% dict create name w0shishabi action read name w0shishabi action read
-
命令:
dict replace dictionary ?key value ...?
作用:在dictionary中加入命令中给出的key关键字关联对(如果已存在则覆盖)。% set lum {name w0shishabi action read} name w0shishabi action read % dict replace $lum gender male name w0shishabi action read gender male
-
命令:
dict remove dictionary ?key ...?
作用:在dictionary中删除key项。% set lum {name w0shishabi action read} name w0shishabi action read % dict remove $lum action name w0shishabi
-
命令:
dict merge ?dictionary ...?
作用:联合所有字典组成新的字典。% set lum_name {name w0shishabi} name w0shishabi % set lum_action {action read} action read % dict merge $lum_name $lum_action name w0shishabi action read
-
命令:
dict set varName key ?key...? value
作用:更新varName中的key关联的value。% set lum {name w0shishabi action read} name w0shishabi action read % dict set lum action work name w0shishabi action work
-
命令:
dict unset varName key ?key...?
作用:移除varName中的key关联的value。% set lum {name w0shishabi action read} name w0shishabi action read % dict unset lum action name w0shishabi
-
命令:
dict size dictionary
作用:返回dictionary的关键字的数量。 -
命令:
dict exists dictionary key ?key ...?
作用:检测dictionary中是否存在key。多个key用于嵌套字典。 -
命令:
dict keys dictionary ?pattern?
作用:返回dictionary中的全部关键字的列表。如果设置了pattern,则返回与之匹配的关键字。 -
命令:
dict values dictionary ?pattern?
作用:返回dictionary中的全部值的列表。如果设置了pattern,则返回与之匹配的值。 -
命令:
dict for {keyVar valueVar} dictionary body
作用:遍历dictionary中的关键字和值,将给定变量依次设为相应的关键字和关联值,然后分别运行body参数。% set example {title Miss firstname Ann surname Huan} title Miss firstname Ann surname Huan % dict for {key value} $example {puts [format "%s: %s" $key $value]} title: Miss firstname: Ann surname: Huan
-
命令:
dict append varName key value ?value ...?
作用:把给定的字符串value添加到字典varName的key对应的值中。 -
命令:
dict incr varName key ?increment?
作用:对varName字典中与给定key对应的值进行增加操作。如果增量没有给定,默认1。如果没有key,创建该项,关联值设为0,再进行增加操作。 -
命令:
dict unpdate varName key localVar ?key localVar ...? body
作用:对varName字典里所有再命令中列出的key,将其值绑定到localVar,然后运行body。运行完后,将变量写回字典。 -
命令:
dict with varName key ?key ...? body
作用:对varName字典里所有再命令中列出的key,将其值绑定到varName,然后运行body。运行完后,将变量写回字典。
- 很多dict命令支持嵌套字典,即允许命令中指定多个key。
- 支持嵌套字典的子命令:
dict get、dict exists、dict set、dict unset、dict with