Utilitaires 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
}



Différence de liste:
tcl
# version de #MenzAgitat
proc ldiff {list1 list2} {
   foreach element $list1 {
      if { !($element in $list2) } {
         lappend diff $element
      }
   }
   return $diff
}



Les mêmes en utilisant lmap
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]}}]
}
 
proc ldiff {list1 list2 {option -exact}} {
   if {$option ne "-nocase"} { set option -exact }
   return [lmap x $list1 {expr {[lsearch $option $list2 $x] < 0 ? $x : [continue]}}]
}


Répondre


Messages dans ce sujet
Utilitaires de listes - par CrazyCat - 30/01/2024, 17:45
RE: Utilitaires de listes - par Amand - 30/01/2024, 21:26
RE: Utilitaires de listes - par CrazyCat - 30/01/2024, 21:56
RE: Utilitaires de listes - par Amand - 30/01/2024, 22:05
RE: Utilitaires de listes - par CrazyCat - 12/03/2024, 16:58

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté