La recherche d'un 2-Dimensions Tuple/Liste en Python

Je recherche un tuple of tuples pour une chaîne de caractères et renvoie l'index de la mère n-uplet. J'semblent fonctionner dans les variations de ce type de recherche fréquemment.

Ce qui est le plus pythonic façon de le faire?

I. E:

derp = (('Cat','Pet'),('Dog','Pet'),('Spock','Vulcan'))
i = None
for index, item in enumerate(derp):
    if item[0] == 'Spock':
         i = index
         break
>>>print i
2

Je peut généraliser cela en un petit utilitaire fonction qui prend un objet iterable, un index (je l'ai codé en dur 0 dans l'exemple) et une valeur de recherche. Il fait le tour mais j'ai cette idée qu'il y a probablement un one-liner 😉

I. E:

def pluck(iterable, key, value):
    for index, item in enumerate(iterable):
        if item[key] == value:
             return index
    return None
Pourquoi voulez-vous à l'index et pas de la valeur?
Juste un contexte particulier. Une autre fonction, je prend un n-uplet et et index, puis dit: "le tuple à l'indice i est l'une de celle qui est actuellement active."

OriginalL'auteur Koobz | 2010-02-05