GH avatar Bite 158. Subclass the list built-in

In this Bite you will complete IntList, a subclass of list, which should be able to do the following:

>>> from intlist import IntList
>>> mylist = IntList([1, 3, 5])
>>> mylist.mean
3
>>> mylist.median
3
>>> mylist.append(7)
>>> mylist.append(1.0)
>>> mylist.mean
3.4
>>> mylist.median
3
>>> mylist.append('a')
...
TypeError
>>> mylist.append([2, 3])
>>> mylist.append([2, 'a'])
...
TypeError
>>> mylist += [1]
>>> mylist += [1, 'a']
...
TypeError

As you see this special list is enriched with mean and median properties, and is restricted to int values only, be it as appended individually or as list of ints. Apart from overriding append, you'll also need to tweak the __add__ and __iadd__ (operator overloading) dunder methods here.

Enjoy and keep calm and code more Python!

Will you be Pythonista #16 to crack this Bite?
It takes an average of ~56 minutes to solve this Bite (submissions 5-240 min).
Pythonistas rate this Bite 5.0 on a 1-10 difficulty scale.
» Up for a challenge? 💪

Login and get coding
We use Python 3.7