2012-05-16 14 views
5

Tengo una lista de elementos (enteros) y lo que tengo que hacer es verificar rápidamente cuántos elementos de esta lista se encuentran dentro de un rango específico. El ejemplo está abajo.Comprueba cuántos elementos de una lista se encuentran dentro de un rango especificado (Python)

rango es de 34 a 566

l = [9,20,413,425]

El resultado es 2.

por supuesto que se puede usar un simple bucle for para el propósito y comparar cada elemento con el valor mínimo y máximo (34 < x < 566) y luego use un contador si la afirmación es verdadera; sin embargo, creo que podría haber una manera mucho más sencilla de hacerlo, posiblemente con un buen trazo.

Respuesta

8

len([x for x in l if x > 34 and x < 566])

2

así que no estoy seguro que esto es agradable, pero es una línea ;-)

len(set([9,20,413,425]).intersection(range(34,566))) 
12
>>> l = [9,20,413,425] 
>>> sum(34 < x < 566 for x in l) 
2 
+1

inteligente, pero no es intuitivo. –

Cuestiones relacionadas