set table [dict create cells state bits state]
set data [dict create 1 "s" 1 "f"]
puts $table
puts $data
推出:
单元状态位状态
1 f
这很奇怪!为什么不在1 s 1 f创建一个完整的字典? 谢谢!
ps文档说:
dict create ?键值... ?
返回包含每个字典的新字典 作为参数列出的键/值映射(键和值 交替,每个键后跟其相关值。) https://www.tcl.tk/man/tcl/TclCmd/dict.htm#M6
邮寄后的脚本: 我发现把任何两个相同的键都放在同一个东西上,例如:
puts [dict create 2 "s" 2 "f"]
2 f
答案 0 :(得分:2)
如果为同一个键输入不同的值(第一种情况下key = 1,第二种情况下key = 2),像Tcl dict
这样的关联容器将只保留其中一个值。
您仍然可以拥有一个具有多个相等键的数据结构,只是不要使用dict create
,这会强制使用唯一键特征(AFAIK是使用dict create
初始化字典的唯一原因) :
% set data {1 s 1 f}
1 s 1 f
% dict get $data 1
f
% set data [dict create 1 s 1 f]
1 f
% dict get $data 1
f
字典处理命令将处理此结构,就好像它只有一个键一样。字典变异命令不会保留原始结构的多个相等键。