Apparently integers costs 24 bytes in Python. I can understand that it does so because of extra bells and whistles of representing unbounded number. However it looks like boolean data types also cost whooping 24 bytes even though it might ever represent only two values. Why?
Edit: I'm not asking for best way to store bools. I'm already aware of NumPy, BitArray etc from other answers. My question is why, not how. Just to be clear and focused about that I've removed 2nd part of the question.