1

のような配列を使用して、例にある[0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0]の数を返す簡単な方法はありますか? ありがとう!0(s)5

4

5 に答える 5

10

使用list.count:

your_list.count(0)

そしてヘルプ:

>>> help(list.count)
Help on method_descriptor:

count(...)
    L.count(value) -> integer -- return number of occurrences of value
于 2013-03-01T07:46:33.890 に答える
2
In [16]: l = [0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0]

In [17]: l.count(0)
Out[17]: 5
于 2013-03-01T07:47:08.803 に答える
2
li = [0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0]
print len(li) - sum(li)
于 2013-03-01T08:00:56.307 に答える
1

あなたの選択、あなたが夜眠れるものなら何でも:

l = [0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0]

print l.count(0)
# or maybe:
print len(filter(lambda a: a == 0, l))
# or maybe:
print len([0 for x in l if x==0])
于 2013-03-01T08:01:01.967 に答える
1

配列を使用すると、100倍高速化できます(これは、大きなリストの場合にのみ重要になります)...

これは、以下よりも 100 倍高速である必要がありますmy_list.count(0)

(my_array==0).sum()

ただし、データが既にnumpy配列として配置されている場合にのみ役立ちます(または、作成時にnumpy配列に入れることができます)。そうしないと、変換my_array = np.array(my_list)に時間がかかります。

于 2013-03-01T10:45:38.990 に答える