Le type liste de Python possède une méthode index() qui prend un paramètre et renvoie l'indice du premier élément de la liste correspondant au paramètre. Par exemple :
>>> some_list = ["apple", "pear", "banana", "grape"]
>>> some_list.index("pear")
1
>>> some_list.index("grape")
3
Existe-t-il une manière gracieuse (idiomatique) d'étendre cela aux listes d'objets complexes, comme les tuples ? Idéalement, j'aimerais pouvoir faire quelque chose comme ceci :
>>> tuple_list = [("pineapple", 5), ("cherry", 7), ("kumquat", 3), ("plum", 11)]
>>> some_list.getIndexOfTuple(1, 7)
1
>>> some_list.getIndexOfTuple(0, "kumquat")
2
getIndexOfTuple() est juste une méthode hypothétique qui accepte un sous-index et une valeur, puis renvoie l'index de l'élément de la liste avec la valeur donnée à ce sous-index. J'espère
Existe-t-il un moyen d'obtenir ce résultat général, en utilisant des compréhensions de listes ou des lambas ou quelque chose de "en ligne" comme ça ? Je pense que je pourrais écrire ma propre classe et méthode, mais je ne veux pas réinventer la roue si Python a déjà un moyen de le faire.