def recherche(li, c):
    """
    Retourne l'index d'un élément ou -1 si non trouvé

    @param      li      liste
    @param      c       élément à trouver
    @return             position

    .. exref::
        :tag: Base
        :title: recherche avec index

        Lorsqu'on cherche un élément dans un tableau, on cherche plus souvent
        sa position que le fait que le tableau contient cet élément.

        ::

            def recherche (li, c) :
                for i,v in enumerate (li) :
                    if v == c : return i
                return -1
            li = [ 45, 32, 43, 56 ]
            print (recherche (li, 43))  # affiche 2

        En python, il existe un fonction simple qui permet de faire ça :

        ::

            print (li.index (43))  # affiche 2

        Lorsque l'élément n'y est pas, on retourne souvent la position ``-1``
        qui ne peut être prise par aucun élément :

        ::

            if c in li : return li.index(c)
            else: return -1

        Même si ce bout de code parcourt deux fois le tableau (une fois déterminer
        sa présence, une seconde fois pour sa position), ce code est souvent plus rapide
        que la première version et la probabilité d'y faire une erreur plus faible.
    """
    if c in li:
        return li.index(c)
    else:
        return -1
