Есть ли аналог модуля shelve, который работает как список, а не как словарь?
Тут все сильно зависит от того, что именно вы храните в этом списке, поэтому приведу несколько вариантов.
1. numpy позволяет создавать типизированные массивы и хранит их в памяти, но в весьма компактном виде (объем порой в разы меньше, чем у обычного python'овского списка) и представляет очень богатые возможности по обработке данных.
2. pandas, используя numpy, умеет создавать структурированные массивы (датафреймы), похожие на таблицы баз данных, и предоставляет развитый функционал по выборке и обработке этих данных.
3. pytables позволяет сохранить numpy-массивы или pandas-датафреймы на диск в виде файлов в формате HDF5, обеспечивая быстрый доступ к данным и опять же удобный функционал по поиску/выборке данных.
Скорее всего на ваших объемах данных pandas+HDF5 будет в разы/десятки раз быстрее любой СУБД.
4. bcolz позволяет сжать данные, а также хранить их не только в памяти, но и на диске.
При этом операции с данными производится очень быстро, иногда даже быстрее чем с несжатым списками.
Вообще, спископодобные данные гораздо быстрее обрабатывать с помощью векторных операций в numpy и pandas. Но если вам все-таки нужны именно циклы, то также рекомендую обратить внимание на numba, с помощью которой можно в десятки-сотни раз ускорить python'овские циклы.
Специально для тебя:https://github.com/deliro/sqlitelist