检查列表中是否存在元素,如果元素未附加到列表中

时间:2017-09-28 06:05:53

标签: tcl

我想要一个项目列表,即点(x,y,z)的坐标。现在,保持x的值相同,我想增加y和z的值,并在for循环中做一些事情。

set x [string range $x1 1 $lgthx];
set lst_nodes [list $x 0 0];
for { set y 0}  {$y < 1000} {incr y} {
    for { set z 0}  {$z < 1000} {incr z} {
        # Here i want to check if the item is present in the list or not
        set lst_nodes [lappend $lst_nodes [<Do something here> $x $y $z]];
    }
}

我尝试了很多选项来完成这项工作。但是,我收到的错误就像是x的值:无效的命令名称“215.5623”

1 个答案:

答案 0 :(得分:2)

lappend适用于变量名称,而不是变量本身,因此export const SomeList = (props) => { return ( <List {...props} > <Datagrid> <TextField source="id" label="Id" /> {props.record.date >= thisYearBeginning ? (<EditButton />) : null } </Datagrid> </List> ) }

此外,[lappend lst_nodes [<Do something here> $x $y $z]];修改了列表。我不确定您使用lappend的原因。

假设通过上述更改,脚本工作,然后进行检查,我会使用这样的东西(ni表示&#39;不在&#39;并且如果元素不存在则返回true在列表中):

set

我将set x [string range $x1 1 $lgthx] set lst_nodes [list [list $x 0 0]] for {set y 0} {$y < 1000} {incr y} { for {set z 0} {$z < 1000} {incr z} { # Here i want to check if the item is present in the list or not set new_node [<Do something here> $x $y $z] if {$new_node ni $lst_nodes} { lappend lst_nodes $new_node } } } 包装到另一个列表中,因为我相信你保留了一个列表列表(这些是坐标)。如果不是,则需要将每个元素附加到列表中,而不是使用list expansion [list $x 0 0]附加列表(新节点)。