Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. from collections import deque
  4.  
  5. class BounceFilter(object):
  6. def __init__(self, size=10, discard_count=2):
  7. self.__size = size
  8. self.__discard_count = discard_count
  9.  
  10. self.__data = deque(maxlen=size)
  11.  
  12. @staticmethod
  13. def discard(data, discard_count):
  14. n = discard_count
  15. if len(data) <= n * 2:
  16. return data
  17. return data[n:-n]
  18.  
  19. @staticmethod
  20. def extract_sorted_digits(data):
  21. d = list(n for n in data if n is not None)
  22. d.sort()
  23. return d
  24.  
  25. def add(self, value):
  26. self.__data.extendleft([value])
  27.  
  28. def items(self):
  29. return list(self.__data)
  30.  
  31. def avg(self):
  32. digits = self.extract_sorted_digits(self.__data)
  33. values = self.discard(digits, self.__discard_count)
  34. if values:
  35. return sum(values) / len(values)
  36. return None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement