标签: list replace tcl
Tcl中有一个列表清单。
set somelist {{aaa 1} {bbb 2} {ccc 1}}
如何替换第一个列表的元素,以便新列表看起来像我一样:
set somelist {{xxx 1} {bbb 2} {ccc 1}}
我尝试使用lreplace执行此操作,但它无法正常工作。
lreplace
lreplace somelist 0 1 {xxx 1}
感谢。
答案 0 :(得分:2)
lreplace命令将列表值作为第一个参数,而不是变量名,所以你可以这样做
set somelist {{aaa 1} {bbb 2} {ccc 1}} set somelist [lreplace $somelist 0 0 {xxx 1}]
或者,使用lset,这是专门针对这种情况的:
lset
set somelist {{aaa 1} {bbb 2} {ccc 1}} lset somelist 0 {xxx 1}
使用lset,您可以轻松钻取到子列表。例如,要将{bbb 2}更改为{bbb 42},您可以执行
lset somelist {1 end} 42