¿Cuál es la forma más pythonica de filtrar un conjunto?

Tengo una lista que consiste en reemplazos y quiero hacer dos cosas:

  1. eliminar duplicados
  2. eliminar todos los elementos por un criterio específico, para ser exactos, quiero eliminar todos los elementos más grandes que un determinado valor.

Pensé que podía usar el filtro para 2 y luego usar el conjunto para lograr 1 algo como

list(set(filter(lambda x:x<C, l))) 

¿Existe una forma mejor / más pythonica / más eficiente?

El uso de la lista de comprensión es tal vez más “pythonic”.

 filtered = [x for x in set(lst) if x < C] 

Las mejores dos formas de hacerlas son filtrando:

 new_list = list(set(filter(lambda x:x 

O bien, establezca comprensiones (que muchos considerarían más pythonicas e incluso más eficientes):

 list({x for x in l if x < C}) 

Pero supongo que, si está familiarizado con el filtro, puede seguirlo.