Mis a jour le 2025-04-14, 12:10

pyinterval

package pyinterval : permet de gérer des ensembles d'intervalles et de faire des opérations dessus, notamment intersection et réunion.
Utilisation du package : from interval import interval, inf
Définition d'un intervalle :
  • myInt = interval([1, 5])
  • on peut aussi faire : myInt = interval[1, 5]
  • attention : ne pas faire interval(1, 5), ça donne 2 intervalles chacun constistué de 1 point (interval([1.0], [3.0])).
  • myInt = interval([-inf, 5])
  • myInt = interval([1, 5], [6, 8])
  • myInt = interval([1, 5], [4, 8]) : donne interval([1.0, 8.0])
  • myInt = interval([1.4, 5.2]) : bornes non nécessairement entières.
  • myInt = interval() : intervalle vide (alors len(myInt) vaut 0).
  • on peut boucler sur les composantes d'un intervalle comme sur n'importe quelle sequence pour récupérer les bornes inférieures et supérieures :
    for x in myInt:
      print(x.inf)
      print(x.sup)
        
Opérations sur les intervalles :
  • interval([1, 5]) & interval([4, 8]) : intersection (donne interval([4.0, 5.0]))
  • interval([1, 5]) & interval([7, 10]) : intersection (donne interval())
  • interval([1, 5]) | interval([4, 8]) : réunion (donne interval([1.0, 8.0]))
  • interval([1, 5]) | interval([7, 10]) : réunion (donne interval([1.0, 5.0], [7.0, 10.0]))
  • 2.2 in interval([1, 5]) : teste si le nombre est dans l'intervalle (ici True)
  • len(interval([1, 5], [7, 8])) : donne le nombre de composantes connexes (ici 2), attention, pas la longueur !
  • interval.union([interval1, interval2, interval3]) : renvoie la réunion de tous les intervalles.
  • interval.hull([interval1, interval2, interval3]) : renvoie le plus petit intervalle qui les contient tous.
On peut itérer sur les composantes connexes d'un intervalle :
for x in interval([1, 5], [7, 8]):
    print(x.sup - x.inf)
  
donne :

4.0
1.0
  

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert