Table des matières

lreplace

Remplace les éléments d'une liste avec de nouveaux éléments

Syntaxe

lreplace list first last ?element element ...?

Description

lreplace retourne une nouvelle liste formée en remplaçant un ou plusieurs éléments de list avec les arguments element. first et last spécifient le premier et dernier index de l'intervalle d'éléments à remplacer.

0 se réfère au premier élément de la liste, et end (ou toutes ses abréviations) peut être employé pour se référer au dernier élément de la liste. Si list est vide, alors first et last sont ignorés. Si first est inférieur à zéro, il est considéré se référer au premier élément de la liste.

Pour les listes non-vides, l'élément indiqué par first doit exister. Si last est inférieur à zéro mais supérieur à first, alors tout élément spécifié sera ajouté à la liste. Si last est inférieur à first alors aucun éléments ne sont effacés; les nouveaux éléments sont simplement insérés avant first. Les arguments element spécifient zéro ou plusieurs nouveaux arguments à ajouter à la liste à la place de ceux qui ont été effacés. Chaque argument element deviendra un élément séparé de la liste. Si aucun argument element n'est spécifié, alors les éléments entre first et last sont simplement effacés.

Si list est vide, tous les arguments element sont ajoutés à fin de la liste.

Exemples

Il n'existe pas de fonction lremove, mais elle peut être créée simplement:

proc ::lremove {datas needle} {
   return [lsearch -all -inline -not -exact $datas $needle]
}

Utilisation:

% set mylist {{A B C} {D E F} {G H I} {J K} L}
% lremove $mylist L
{A B C} {D E F} {G H I} {J K}
% lremove $mylist {D E F}
{A B C} {G H I} {J K} L

Voir aussi

list