Je ne suis pas au courant d'une méthode qui vous permettrait d'exécuter un test sur les valeurs avec l'ensemble actuel des fonctions.
Toutefois, en fonction de la fréquence à laquelle vous effectuez vos calculs, vous pourriez envisager de faire ce qui suit:
- Utilisez les
cache
feature:
cache
- Si on leur donne, il doit être un booléen valeur spécifiant pour activer ou désactiver la mise en cache des résultats. Si vous utilisez plusieurs fois la même instance rrule , activer la mise en cache améliorera considérablement les performances .
- Remapper vos résultats sur un tableau numpy pour la résolution d'index optimal:
Compte tenu r
étant un grand nombre de résultats:
>>> r # Your result set
<dateutil.rrule.rrule object at 0x7f616d4182e8>
>>> r[1] # Example of what's inside
datetime.datetime(2015, 1, 1, 0, 0)
>>> import numpy as np # Let's load numpy
>>> a = np.array(list(r)) # We build a numpy array, should be fast
>>> np.argwhere(a == datetime.datetime(2015, 1, 1, 0, 0)) # Catch'em all!
array([[1]])
I Je ne sais pas si np.argwhere()
sera plus rapide que l'itération sur le jeu de résultats avec une simple boucle, mais c'est une approche plus lisible.