cómo verificar si un elemento existe en una lista de listas de python

Tengo una lista de listas que corresponden a las líneas en el archivo, con varias columnas.

[ [col1, col2, col3], [elem1, elem2, elem3], [elem4, elem5, elem6] ] 

Quiero verificar si (por ejemplo) elem3 está en alguna de las listas, y si lo está, ingrese a esa lista. (Realmente tengo una lista de cosas que necesito revisar, así que es una lista que probablemente contiene elem3 , elem5 , elem7 … etc)

la forma más corta es usar las list comprehensions y las list comprehensions veces son más rápidas que simples for loop

tu lista:

 list1 = [ ["col1", "col2", "col3"], ["elem1", "elem2", "elem3"], ["elem4", "elem5", "elem6"] ] 

tu elemento para encontrar:

 to_find = "col1" 

Su función para “entrar en esa lista”:

 def do_something(sub_list): print (sub_list) 

y la list comprehension que encontrará su elemento y función de llamada con la lista que lo tiene:

 [do_something(sub_list) for sub_list in list1 if to_find in sub_list] 

Puedes hacer algo como esto:

 def in_list(list_of_lists, item): for list_ in list_of_lists: if item in list_: return list_ 

EDITAR:

Aquí está una versión recursiva para el diablo de esto:

 def in_list(list_of_lists, item): if not list_of_lists: return None if item in list_of_lists[0]: return list_of_lists[0] return in_list(list_of_lists[1:], item) 

Me encontré con un problema similar. Tenía una lista de tuplas, con números de azulejos:

 data = [(0, 0, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0), (0, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 0), (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)] 

Necesitaba averiguar en qué lugar de la lista de tuplas se encuentra un número de mosaico en particular, así que:

 to_find = 42 for i in range(len(data)): if to_find in data[i]: print (i, data[i].index(to_find)) break