所以通過這個程序,我正在做一個任務,我已經正確地計算了這個列表的數量,平均值和中位數。我不知道如何正確解決這個問題。但不幸的是,我不斷得到一個'難以置信的類型:'列表''任何幫助模式?確定列表模式
#! /usr/bin/env python3
class StatsList:
def __init__(self):
self.sum = 0
self.nums = []
def append(self, number):
self.nums.append(number)
def count(self):
count = len(self.nums)
return count
def mean(self):
for num in self.nums:
self.sum = self.sum + num
return self.sum /len(self.nums)
def median(self):
self.nums.sort()
midPos = self.count() // 2
if self.count() % 2 == 0:
median = (nums[midPos] + nums[midPos-1])/2.0
else:
median = self.nums[midPos]
return median
def mode(self):
counts= {}
for num in self.nums:
counts[num] = counts.get(self.nums,0) + 1
items = list(counts.nums())
self.nums.sort(key=byFreq)
def byFreq(pair):
return pair[1]
def main():
l = StatsList()
l.append(1)
l.append(11)
l.append(3)
l.append(1)
l.append(4)
print("Count:", l.count()) # should print 5
print("Mean:", l.mean()) # should print 4.0
print("Median:", l.median()) # should print 3
print("Mode:", l.mode()) # should print 1
if __name__ == '__main__':
main()
輸出/回溯:
Count: 5
Mean: 4.0
Median: 3
Traceback (most recent call last):
File "C:\Users\Dorthyy\Downloads\statslist.py", line 63, in <module>
main()
File "C:\Users\Dorthyy\Downloads\statslist.py", line 59, in main
print("Mode:", l.mode()) # should print 1
File "C:\Users\Dorthyy\Downloads\statslist.py", line 39, in mode
counts[num] = counts.get(self.nums,0) + 1
TypeError: unhashable type: 'list'
>>>
你可以包括完整的追溯? – TigerhawkT3
@ TigerhawkT3我已經包括它 – Dorthy