Tcl 如何处理嵌套的dict?
我有点困惑。我已经建立了一个字典和一个嵌套字典 这是它的“布局” 。 . 在一个“dict for”命令中,我想提取等级值——我无法让它工作。 如果我不在指令范围内,我可以使用Tcl 如何处理嵌套的dict?,tcl,Tcl,我有点困惑。我已经建立了一个字典和一个嵌套字典 这是它的“布局” 。 . 在一个“dict for”命令中,我想提取等级值——我无法让它工作。 如果我不在指令范围内,我可以使用 set tmp [dict get $Courses 044262 grade] 但是在dict中,因为我无法让它工作…尝试了许多$key或$val的组合,有或没有$符号 我做错了什么(如果有人能推荐一本有问题的好书/在线教程进行培训,那就太好了!)对于您的特定词典,每个循环都有一本属于自己的词典。然后,您就可以使
set tmp [dict get $Courses 044262 grade]
但是在dict中,因为我无法让它工作…尝试了许多$key或$val的组合,有或没有$符号
我做错了什么(如果有人能推荐一本有问题的好书/在线教程进行培训,那就太好了!)对于您的特定词典,每个循环都有一本属于自己的词典。然后,您就可以使用普通的字典操作进行访问;例如:
dict for {key val} $Courses {
puts " the key = $key "
puts " the val = $val "
# Iterate over contents
dict for {k v} $val {
puts "$k => $v"
}
# Picking out a particular key
puts "The grade was [dict get $val grade]"
}
请注意,如果您正在更新,更新不会写回课程
;字典是写时复制的值,这对于Tcl来说很正常。您必须执行如下更新:
dict set Courses $key grade "Excellent, dudes!"
还要注意的是,迭代不会看到更改(您在为启动dict时获取了一个逻辑副本)。如果您真的想看到更改,则需要以完全不同的方式编写循环:
foreach key [dict keys $Courses] {
puts " the key = $key "
puts " the val = [dict get $Courses $key] "
dict for {k v} [dict get $Courses $key] {
puts "$k => $v"
}
puts "The grade was [dict get $Courses $key grade]"
dict set Courses $key grade 1234567890
puts "The grade is changed to [dict get $Courses $key grade]"
}
<>如果事情变得更加复杂,我会认真考虑使用像SQLite这样的嵌入式数据库来管理数据… TNX兄弟。大忙
dict set Courses $key grade "Excellent, dudes!"
foreach key [dict keys $Courses] {
puts " the key = $key "
puts " the val = [dict get $Courses $key] "
dict for {k v} [dict get $Courses $key] {
puts "$k => $v"
}
puts "The grade was [dict get $Courses $key grade]"
dict set Courses $key grade 1234567890
puts "The grade is changed to [dict get $Courses $key grade]"
}