Использование метода Python list index () для списка кортежей или объектов?

Тип списка Python имеет метод index (), который принимает один параметр и возвращает индекс первого элемента в списке, соответствующем параметру. Например:

>>> some_list = ["apple", "pear", "banana", "grape"]
>>> some_list.index("pear")
1
>>> some_list.index("grape")
3

Есть ли изящный (идиоматический) способ расширить это на списки сложных объектов, таких как кортежи? В идеале я хотел бы иметь возможность сделать что-то вроде этого:

>>> tuple_list = [("pineapple", 5), ("cherry", 7), ("kumquat", 3), ("plum", 11)]
>>> some_list.getIndexOfTuple(1, 7)
1
>>> some_list.getIndexOfTuple(0, "kumquat")
2

getIndexOfTuple () - это просто гипотетический метод, который принимает субиндекс и значение, а затем возвращает индекс элемента списка с заданным значением в этом субиндексе. Я надеюсь

Есть ли какой-нибудь способ достичь этого общего результата, используя списки или ламбы или что-то подобное? Я думаю, что мог бы написать свой собственный класс и метод, но я не хочу изобретать велосипед, если у Python уже есть способ сделать это.