Тело не предлагает лямбды?
У попробуйте это и работает. Я прихожу на этот пост в поиске ответа. Я не нашел то, что мне нравится, но я чувствую инсайт: P
l #[['rana', 1, 1], ['pato', 1, 1], ['perro', 1, 1]]
map(lambda x:x[0], l).index("pato") #1
Изменить, чтобы добавить примеры:
l=[['rana', 1, 1], ['pato', 2, 1], ['perro', 1, 1], ['pato', 2, 2], ['pato', 2, 2]]
извлечь все предметы по условию:
фильтр (лямбда x: x [0] == "pato", l) # [['pato', 2, 1], ['pato', 2, 2], ['pato', 2, 2]]
извлечь все элементы по условию с индексом:
>>> filter(lambda x:x[1][0]=="pato", enumerate(l))
[(1, ['pato', 2, 1]), (3, ['pato', 2, 2]), (4, ['pato', 2, 2])]
>>> map(lambda x:x[1],_)
[['pato', 2, 1], ['pato', 2, 2], ['pato', 2, 2]]
Примечание: _ переменная работает только в интерактивном интерпретаторе y нормальный текстовый файл _ требуется явное назначение, т.е. _ = фильтр (лямбда-x: x [1] [0] == "pato", перечислять (l))