Python: filtra la lista de la lista con otra lista

Estoy tratando de filtrar una lista, quiero extraer de una lista A (es una lista de listas), los elementos que coinciden con su índice de clave 0, con otra lista B que tiene una serie de valores

Me gusta esto

list_a = list( list(1, ...), list(5, ...), list(8, ...), list(14, ...) ) list_b = list(5, 8) return filter(lambda list_a: list_a[0] in list_b, list_a) 

debe regresar:

 list( list(5, ...), list(8, ...) ) 

¿Cómo puedo hacer esto? ¡Gracias!

Use una lista de comprensión:

 result = [x for x in list_a if x[0] in list_b] 

Para mejorar el rendimiento, convierta list_b a un conjunto primero.

Como @kevin señaló en los comentarios, algo como la list(5,8) (a menos que no sea un pseudo-código) no es válido y obtendrá un error.

list() acepta solo un elemento y ese elemento debe ser iterable / iterador

En realidad estás muy cerca. Solo haz esto:

 list_a = list( list(1, ...), list(5, ...), list(8, ...), list(14, ...) ) # Fix the syntax here list_b = [5, 8] return filter(lambda list_a: list_a[0] in list_b, list_a)