projects
/
pyutils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add __len__ to NumericPopulation and then use it instead of a dependency on
[pyutils.git]
/
src
/
pyutils
/
math_utils.py
diff --git
a/src/pyutils/math_utils.py
b/src/pyutils/math_utils.py
index 97bb635ac7af5cb31a680338a87ffaecbb4adce5..ce9940d085ff8935a5f2a451d6398faa6608b4b4 100644
(file)
--- a/
src/pyutils/math_utils.py
+++ b/
src/pyutils/math_utils.py
@@
-21,6
+21,8
@@
class NumericPopulation(object):
>>> pop.add_number(1)
>>> pop.add_number(10)
>>> pop.add_number(3)
>>> pop.add_number(1)
>>> pop.add_number(10)
>>> pop.add_number(3)
+ >>> len(pop)
+ 3
>>> pop.get_median()
3
>>> pop.add_number(7)
>>> pop.get_median()
3
>>> pop.add_number(7)
@@
-59,6
+61,15
@@
class NumericPopulation(object):
if not self.minimum or number < self.minimum:
self.minimum = number
if not self.minimum or number < self.minimum:
self.minimum = number
+ def __len__(self):
+ """Return the population size."""
+ n = 0
+ if self.highers:
+ n += len(self.highers)
+ if self.lowers:
+ n += len(self.lowers)
+ return n
+
def _rebalance(self):
if len(self.lowers) - len(self.highers) > 1:
heappush(self.highers, -heappop(self.lowers))
def _rebalance(self):
if len(self.lowers) - len(self.highers) > 1:
heappush(self.highers, -heappop(self.lowers))