5

我似乎无法将 Jim 和 Bob 列入名为 chicken 的列表中。我知道这是可能的,在另一个字典中有一个字典,它有一个值列表。我究竟做错了什么?

puts [dict set farm tools hoe]
puts [dict lappend farm tools pitchfork]
puts [dict set farm animal cow Marry]
puts [dict set farm animal chicken Jim]
puts [dict lappend farm animal chicken Bob]
puts "chicken list: [dict get $farm animal chicken]"
puts "tool list: [dict get $farm tools]"

输出

tools hoe
tools {hoe pitchfork}
tools {hoe pitchfork} animal {cow Marry}
tools {hoe pitchfork} animal {cow Marry chicken Jim}
tools {hoe pitchfork} animal {cow Marry chicken Jim chicken Bob}
chicken list: Bob
tool list: hoe pitchfork

如您所见,工具列表有效。但鸡肉清单不起作用。我构建代码的方式有问题吗?我使用 dict lappend 或 dict 出错了?任何事情都会有助于阐明这一点,谢谢。

4

1 回答 1

2

于是我去了tcl聊天室,他们告诉我:

如手册页中所述,dict 将 chicken 和 Bob 都添加到 dict 元素 animal 的列表中。

您不能直接附加到字典中更深的列表。

一种方法是:

dict with farm {
    dict lappend animal chicken Jim Bob
}

所以你,我的错。:P 所有功劳都归于 tcl 聊天室中的“schelte”。

额外: dict lappend 工作方式的原因来自 Donal Fellows 本人在上面的评论中,谢谢 Donal

于 2013-10-10T20:27:30.227 回答