Generally in Python, integers are stored as long meaning that they will use at least 32 bits. When storing many numbers which do not require 32 bits, this would seem to be significantly wasteful; variable length representation should be able to assist in such cases.
$ pip install pyvarint
from pyvarint import decode, encode
encoded = encode(666)
decoded = decode(encoded)
print("number: 666", f"encoded: {encoded}", f"decoded: {decoded}", sep="\n")
Output:
number: 666
encoded: b'\x9a\x05'
decoded: 666