Est-il une bibliothèque de fonction qui effectue une recherche binaire sur une liste ou un tuple et retourne la position de l'élément s'il est trouvé et 'False' (-1, Aucun, etc.) si pas?
J'ai trouvé les fonctions bisect_left/droite dans le traversent, module, mais ils ont encore de retour d'un poste, même si l'élément n'est pas dans la liste. C'est parfaitement bien pour leur utilisation prévue, mais je veux juste savoir si un élément est dans la liste ou pas (ne veux pas insérer quoi que ce soit).
J'ai pensé à l'aide d' bisect_left
, puis de vérifier si l'élément à cette position est égale à ce que je cherche, mais qui semble lourd (et j'ai aussi besoin de faire la vérification des limites si le nombre peut être plus grand que le plus grand nombre dans ma liste). Si il y a une meilleure méthode, je voudrais savoir à ce sujet.
Edit Pour préciser ce que j'en ai besoin pour: je suis conscient qu'un dictionnaire serait très bien adapté pour cela, mais j'essaie de garder la mémoire de la consommation aussi faible que possible. Mon usage prévu serait une sorte de double sens (look-up table. J'ai dans la table d'une liste de valeurs et j'ai besoin d'être en mesure d'accéder à des valeurs en fonction de leur index. Et aussi je veux être en mesure de trouver l'indice d'une valeur particulière, ou None si la valeur n'est pas dans la liste.
À l'aide d'un dictionnaire car ce serait le moyen le plus rapide, mais serait environ le double de la mémoire.
Je posais cette question en pensant que j'ai peut-être oublié quelque chose dans les bibliothèques Python. Il semble que je vais avoir à écrire mon propre code, en tant que Moe a suggéré.