これは単純な関数ですが、それは私に苦労しています。私はリストでモードを計算しようとしていますが、同じ周波数の> 1モードがある場合は、それらを表示する必要があります。リスト内の複数のモードをカウントするPython
def compute_mode(numbers):
mode = 0
count = 0
maxcount = 0
for number in numbers:
count = numbers.count(number)
if count >= maxcount:
maxcount = count
mode = number
print("Mode: ", mode, "Count: ", maxcount)
ファンクションコール:
print(compute_mode([0,1,3,5,7,3,0]))
出力:
Mode: 0 Count: 2
Mode: 3 Count: 2
Mode: 3 Count: 2
Mode: 0 Count: 2
私は関数は最後の2行を繰り返さない作るように見えることはできません。私はなぜ0と3のために再び繰り返されているのかわかりません。
アイデア?
それは 'for'ループは数字が引用される可能性があり現状ではたとえモードでなくてもモードとして扱うことができます。あなたのコードは、その数が最大数***以上であれば、モードであると主張します。 – jez