ominous2012的个人空间 https://blog.eetop.cn/934213 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

tcl8-字典操作

已有 2490 次阅读| 2016-3-7 21:35 |个人分类:tcl

1.dict update

dict update diction key value

下面对调两个变量的值,v1,v2为指定的键值对应的值的别名,前面无$

% set ex {fn ann sn huan title miss}

fn ann sn huan title miss

% dict update ex fn v1 sn v2 {

> lassign [list $v1 $v2] v2 v1

> }

% puts $ex

fn huan sn ann title miss

 

%set pf {c 1 x 2 y 3}

 

proc sv {dictvar key} {

> upvar 1 $dictvar d

> dict update d $key v {

> set v [expr {$v**2}]

> }

> }

% sv pf y

9

dict update有个重要特点,更新只发生在dict update命令块结束的时候,未被子命令映射的关键字-关联值是不会受到影响的。

 

 % dict update ex sn s notes n initial i {

> dict set ex title mrs

> unset s

> set n "have initial = [info exists i]"

> puts $ex

> }

fn huan sn ann title mrs

% puts $ex

fn huan title mrs notes {have initial = 0}

 % 

 

2.嵌套字典,支持的有dict get ,dict exists,dict set,dict unset,dict with

dict get $dict key1 key2

 

 % set nestdic {fn ann sn huan}

fn ann sn huan

 % dict set nestdic address street {ordinary way}

fn ann sn huan address {street {ordinary way}}

 % dict set nestdic address city springfiels

fn ann sn huan address {street {ordinary way} city springfiels}

% dict unset nestdic address street

fn ann sn huan address {city springfiels}

 

dict exists $dict key1 key2

 

dict withdict update相似,它容许吧一个字典打开到变量,但也有一个不同之处,dict with并没有让你控制那些关键字要处理,也没有让您裤子他们绑定到那些值,dict with吧指定的字典或子字典完全打开

% set ex { 

> a {

>   alph {a alp b bravo c charlie}

>   animals {cow calf sheep lamb pig ? goose ? }

> }

> c {

>    comedians {laurel&hardy morecambe&wise}

> }

> }

 

a {

  alph {a alp b bravo c charlie}

  animals {cow calf sheep lamb pig ? goose ? }

}

c {

   comedians {laurel&hardy morecambe&wise}

}

 

 % dict with ex c {

> puts "comedian:$comedians"

> lappend comedians "steven martin"

> }

comedian:laurel&hardy morecambe&wise {steven martin}

laurel&hardy morecambe&wise {steven martin} {steven martin}

 

 

% dict with ex a alph {

> puts "NATO ABC : $a $b $c"

> }

NATO ABC : alp bravo charlie

% dict with ex a animals {

> set pig piglet'

> set goose gosling

> }

gosling

 % puts $ex

a {alph {a alp b bravo c charlie} animals {cow calf sheep lamb pig piglet' goose gosling}} c {comedians {laurel&hardy morecambe&wise {steven martin} {steven martin}}}

 % dict with ex a {

> dict for {k v} $animals {

> puts "$k has baby $v"\}

> }

> }

extra characters after close-quote

% dict with ex a {

> dict for {k v } $animals {

> puts "$k:$v"

> }

> }

cow:calf

sheep:lamb

pig:piglet'

goose:gosling

 % 

 

 


点赞

全部作者的其他最新日志

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 0

    获赞
  • 1

    评论
  • 529

    访问数
关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 04:29 , Processed in 0.018457 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部