Создать класс DefaultList, наследуемый от обычного списка.
DefaultList не должен выбрасывать исключения IndexError в случае выхода за свои границы, а будет возвращать значение по умолчанию, которое должно быть передано в метод __init__. Для переопределения действий взятия по индексу нужно работать с методом __getitem__. В переопределенном __getitem__ будет производиться отлавливание исключения IndexError и если исключение возникнет, будет возвращено значение по умолчанию.
Подумайте, где может быть полезен такой тип списка.
Например:
>>> s = DefaultList(0)
>>> s[3434]
0