set list {{1 2} {2 3} {3 1} {4 1} {2 8} {5 3} {6 6} {7 3} {8 1} {8 3} {8 2} {4 6} {4 8} {2 1}} puts $list set idx -1 foreach val $list { incr idx puts $val if {[lindex $val 0] == 8} { set list [lreplace $list $idx $idx] incr idx -1 } } puts $list gives: {1 2} {2 3} {3 1} {4 1} {2 8} {5 3} {6 6} {7 3} {8 1} {8 3} {8 2} {4 6} {4 8} {2 1} 1 2 2 3 3 1 4 1 2 8 5 3 6 6 7 3 8 1 8 3 8 2 4 6 4 8 2 1 {1 2} {2 3} {3 1} {4 1} {2 8} {5 3} {6 6} {7 3} {4 6} {4 8} {2 1}