2013-04-02 13 views
5

のは、私はこのリストを持っているとしましょう:私は結果が3が7よりも大きくする必要がありますどのように多くの要素を知りたいリスト内の指定された数字よりも大きい要素の出現をどのように数えることができますか?

a = [1.1, 2, 3.1, 4, 5, 6, 7.2, 8.5, 9.1] 

。 Pythonでこれを行うためのエレガントな方法はありますか? countで試しましたが、うまくいきません。

答えて

15
>>> a = [1.1 , 2 , 3.1 , 4 , 5 , 6 , 7.2 , 8.5 , 9.1] 
>>> sum(x > 7 for x in a) 
3 

これはbool sがあまりにもint秒であるという事実を使用しています。

(あなたはこれに反対した場合、あなたはそれが明確ではないと思いますかニシキヘビので、その後this linkを読む)

+0

ありがとうございます!そのトリックをした。 – otmezger

+3

これはとても優雅です。 – Mariano

+2

「真」の値を合計することはできません。 –

2

でも短く、numpyのを使用して:

sum(np.array(a)>7) 
+0

ありがとう、これはmatlabに非常によく似ています – otmezger

0

があなたを返す関数を書きます特定の数よりも多い要素の数。

def get_max_count(l, num): 
    count = 0 

    for x in l: 
     if x > num: 
      count+=1 
    return count 

l = [1.1, 2, 3.1, 4, 5, 6, 7.2, 8.5, 9.1] 
print get_max_count(l=l, num = 7) 
関連する問題