Очевидно, что целые числа стоят 24 байта в Python. Я могу понять, что он делает это из-за дополнительных колоколов и свиста, представляющих неограниченное число. Однако похоже, что логические типы данных также стоят 24 байта, даже если они могут представлять только два значения. Зачем?Python boolean byte size
Редактировать: Я не прошу лучшего способа хранения bools. Я уже знаю NumPy, BitArray и т. Д. Из других ответов. Мой вопрос: почему, а не как. Чтобы быть ясным и сосредоточенным, я снял вторую часть вопроса.
1. Поскольку булевы являются целыми подклассами. 2. Нет, если вам интересно, что Python может быть недостаточно низким для вас (или вам нужно использовать с ним что-то вроде «numpy»). – jonrsharpe
использовать ctypes, я думаю ... но действительно, если вы беспокоитесь об этом, возможно, это не правильный выбор языка для этого конкретного проекта ... –
«Я понимаю, что это происходит из-за дополнительных колоколов и свиста представления неограниченного число "- нет. Это материал, как указатель типа и счетчик ссылок. На Python 2, 'long', действительный тип bignum, имеет даже * большие * экземпляры. – user2357112