具有十六进制值的字典

dictionnary with hexadecimal value

我想这样设置字典:

set d [dict create]
dict set d color [list #d87c7c #919e8b]

但我不明白为什么我的颜色的第一个值有花括号:

dict get $d color
> {#d87c7c} #919e8b

如何在没有花括号的情况下得到 dict get $d color 的结果?

我怀疑您看到添加大括号是为了消除前导 # 的歧义,以免被误认为是注释。无论出于何种原因,它都可以通过将列表显式转换为单个字符串来删除,这会阻止打印代码转义特定元素:

% set d [dict create]
% dict set d color [list #d87c7c #919e8b]
color {{#d87c7c} #919e8b}
% dict get $d color
{#d87c7c} #919e8b
% join [dict get $d color]
#d87c7c #919e8b