Comment enlever un élément d'une liste TCL :
- qui a un indice = 4
- qui a pour valeur = "aa"
J'ai fait des recherches sur Google et je n'ai pas encore trouvé de fonction intégrée.
Comment enlever un élément d'une liste TCL :
J'ai fait des recherches sur Google et je n'ai pas encore trouvé de fonction intégrée.
L'autre façon d'éliminer un élément est de le filtrer. Cette technique Tcl 8.5 diffère de la méthode lsearch
& lreplace
mentionnée ailleurs, en ce sens qu'elle supprime les tous d'un élément donné de la liste.
set stripped [lsearch -inline -all -not -exact $inputList $elemToRemove]
En revanche, il ne permet pas d'effectuer des recherches dans des listes imbriquées. C'est une conséquence du fait que Tcl ne s'efforce pas de comprendre vos structures de données en profondeur. (Vous pouvez cependant lui demander de chercher en comparant des éléments spécifiques des sous-listes, via la commande -index
option.)
Je n'ai fait que reprendre ce que d'autres ont fait
proc _lremove {listName val {byval false}} {
upvar $listName list
if {$byval} {
set list [lsearch -all -inline -not $list $val]
} else {
set list [lreplace $list $val $val]
}
return $list
}
Puis suivre avec
Inline edit, list lappend
set output [list 1 2 3 20]
_lremove output 0
echo $output
>> 2 3 20
Set output like lreplace/lsearch
set output [list 1 2 3 20]
echo [_lremove output 0]
>> 2 3 20
Remove by value
set output [list 1 2 3 20]
echo [_lremove output 3 true]
>> 1 2 20
Remove by value with wildcar
set output [list 1 2 3 20]
echo [_lremove output "2*" true]
>> 1 3
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.