Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


Intersection de listes
#1
Voici un petit bout de code qui est parfois utile: trouver tous les éléments d'une liste qui sont présents dans une autre liste:

tcl
# Recherche les éléments de list1 contenus dans list2
proc lintersect {list1 list2} {
   foreach element $list1 {
      if { ($element in $list2) } { lappend intersect $element }
   }
   return $intersect
}

zeolia: tchat gratuit, sans inscription ni publicité
Merci de ne pas demander d'aide en MP
Away
  Reply
#2
Le pendant de ldiff toujours en utilisant lmap (tcllib 8.6):

tcl
proc lintersect {list1 list2 {option -exact}} {
   if {$option ne "-nocase"} { set option -exact }
   return [lmap x $list1 {expr {[lsearch $option $list2 $x] >= 0 ? $x : [continue]}}]
}

zeolia: tchat gratuit, sans inscription ni publicité
Merci de ne pas demander d'aide en MP
Away
  Reply
#3
Très utile ce morceau de code pour les scripts de jeu (entre autre). Merci pour le partage :)
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Différence entre deux listes CrazyCat 2 4,125 21/10/2020, 20:26
Last Post: BdS
  Combinaison de listes CrazyCat 0 3,820 29/11/2013, 17:26
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)