假设有如下字典:
set dic [dict create a 1 b 2 c 3 d 4]
有五种字典遍历的方式:
1.foreach与dict keys、dict get结合通过键遍历字典。
foreach key [dict keys $dic] {
puts "$key--[dict get $dic $key]"
}
2.foreach与dict values结合只遍历字典值。
foreach value [dict values $dic] {
puts $value
}
3.dict for遍历字典。
dict for {key value} $dic {
puts "$key--$value"
}
4.dcit map,Tcl8.6新增的命令,遍历字典并执行指定的命令,会返回新的字典。
set newDic [dict map { k v } $dic {
puts "$k--$v"
set k $k$k;
set v $v;
}]
puts $newDic
5.dict filter,遍历字典并按指定过滤类型与规则进行过滤,返回新的字典。
dict filter $dic key a*
dict filter $dic value *4
dict filter $dic script {k v} {
puts "$k--$v"
expr {$v<3}
}