for {set i 0} {$i < [llength $signals]} {incr i} { set signal [lindex $signals $i] #check the signal if {$signal == something} { lreplace $signals $i $i } } set idx -1 foreach val $list { incr idx if {"$val is to be removed"} { set list [lreplace $list $idx $idx] incr idx -1 } }