Option 4: Use only 1 bit per cell

There are numerous other options, but one that often occurs to students is that since cells are either dead or alive their state could be stored using single bit rather than an entire byte. This would reduce the storage requirements by a factor of 8 in the first two options. It is indeed possible to do this helped along by Python's binary operators which allow us to manipulate the bits inside bytes, but these are not a focus of the course so we will just nod at this possibility as we move on by. (There are also fussy end conditions to deal with when the universe is not a multiple of 8 in size because then our information does not exactly fill bytes). Just know that you could use individual bits to represent cells, but that doing so is fussy.