1. ホーム
  2. python

リスト内の値がある数より大きい数

2023-09-08 15:52:46

質問内容

数字のリストがあり、ある条件を満たす数字が現れる回数を取得したいのです。私はリスト内包(または関数内のリスト内包)を使用することができますが、私は誰かがより短い方法を持っているかどうか疑問に思っています。

# list of numbers
j=[4,5,6,7,1,3,7,5]
#list comprehension of values of j > 5
x = [i for i in j if i>5]
#value of x
len(x)

#or function version
def length_of_list(list_of_numbers, number):
     x = [i for i in list_of_numbers if j > number]
     return len(x)
length_of_list(j, 5)

は、さらに凝縮されたバージョンがあるのでしょうか?

どのように解決するのですか?

次のようにすればよいでしょう。

>>> j = [4, 5, 6, 7, 1, 3, 7, 5]
>>> sum(i > 5 for i in j)
3

最初は奇妙に思えるかもしれませんが TrueTrue のように、このように、しかし、私はそれがunpythonicであるとは思わない;結局のところ。 bool はサブクラス int のサブクラスで、2.3 以降のすべてのバージョンで使用できます。

>>> issubclass(bool, int)
True