這是一個簡單的功能,但它給我一個很難。我試圖在列表中計算模式,如果有> 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
我似乎無法使功能不重複的最後兩行。我不知道爲什麼它重複0和3.
任何想法?
因爲它代表了'for'循環可能導致號碼被引用作爲模式,即使它們不是模式。如果您的代碼的計數等於或超過***迄今爲止的最大數量***,而不是整體的最大數量,則您的代碼將聲明一個數字是一種模式。 – jez