-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstats.py
More file actions
67 lines (51 loc) · 1.15 KB
/
stats.py
File metadata and controls
67 lines (51 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
"""
Run:
python -m doctest -v stats.py
"""
from collections import defaultdict
def add(num1, num2):
"""Add two mumbers
Arguments:
num1: int
num2: int
"""
return num1 + num2
# Compute the volume of a cube
def vol(len, wid, dep):
return len*wid*dep
def mean(numbers):
return sum(numbers) / len(numbers)
# 39127
# sort -> 12379
# middle -> 3
# 391274
# sort -> 123479
# avg of middle -> 3+4/2 -> 3.5
def median(numbers):
"""Computes the median of a list of numbers.
argument: list of numbers
return: the median
>>> median([2,1,6])
2
>>> median([3,5,4,9])
4.5
"""
numbers = sorted(numbers)
middle = len(numbers) // 2 # interget division
if len(numbers) % 2 == 0:
# even list
return sum(numbers[middle - 1:middle + 1]) / 2
else:
# odd list
return numbers[middle]
def mode (numbers):
"""Find the most current value in the list
argument: list of numbers
return: the mode
... mode([1,2,2,2,3,3,4])
2
"""
d = defaultdict(int)
for num in numbers:
d[num] += 1
return sorted(d, key=lambda k: d[k])[-1]