2012-05-16 8 views
5

Mam listę elementów (liczb całkowitych) i muszę szybko sprawdzić, ile elementów z tej listy mieści się w określonym zakresie. Przykład znajduje się poniżej.Sprawdź, ile elementów z listy mieści się w określonym zakresie (Python).

jest zakres od 34 do 566

l = [9,20,413,425]

W rezultacie 2.

można oczywiście używać proste pętli w celu porównania i każdy element z wartością minimalną i maksymalną (34 < x < 566), a następnie użyj licznika, jeśli stwierdzenie jest prawdziwe, ale myślę, że może być o wiele łatwiejszy sposób na zrobienie tego, być może z ładnym jedno-liniowym.

Odpowiedz

8

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

2

dobrze nie jestem pewien, że to jest dobre, ale jest to jedna linia ;-)

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

Clever ale nie intuicyjne. –

Powiązane problemy