2012-05-16 17 views
5

Öğelerin bir listesi (tamsayılar) var ve yapmam gereken şey, bu listeden kaç öğenin belirtilen aralıkta olduğunu hızlı bir şekilde kontrol etmektir. Örnek aşağıda. 34 LListeden kaç öğenin belirtilen bir aralıkta (Python) düştüğünü kontrol edin

566 = [9,20,413,425]

sonuç 2.

olan tabii amacıyla döngüsü için basit bir kullanım ve her eleman karşılaştırın gelen

aralıktır min ve maksimum değer ile (34 < x < 566) ve sonra ifade doğruysa bir sayaç kullanın, ancak bunu yapmak için çok daha kolay bir yol olabileceğini düşünüyorum, muhtemelen güzel bir liner ile.

cevap

8

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

2

de ben bu güzel olduğundan emin değilim, ama bir satır ;-)

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 
Zeki
+1

ama sezgisel değil. –

İlgili konular