Ακόμα δεν έχω καταλάβει το πρόβλημα.
Ας υποθέσω ότι το κατάλαβα το πρόβλημά έχει ως εξής:
Έχω λίστα στην python με μήκος 8 και στοιχεία 0,1 πχ
και θέλω να την αποθηκεύσω
επειδή όμως αυτή η δομή της λίστας θα μπορούσε να είναι τα bit ενός byte
θα αναπαραστήσω αυτή με ένα byte και θα την αποθηκεύσω σε ένα binary file
έτσι γλιτώνω πολύ αποθηκευτικό χώρο
>>> bits=[0,1,1,1,0,1,1,0]
>>> byte=bytes([int(''.join(str(bit) for bit in bits), 2)])
>>> byte
b'v' #Δεν έχει σημασία η αναπαράσαση σημασία έχει ότι έχει μήκος 1
Θέλω επίσης να μπορώ να παίρνω αυτό το byte και να το ξανακάνω λίστα
>>> bits_new=[int(i) for i in format(byte[0],'08b')]
>>> bits_new
[0, 1, 1, 1, 0, 1, 1, 0]
και με μορφή συναρτήσεων
def kane_ti_lista_byte(bits):
return bytes([int(''.join(str(bit) for bit in bits), 2)])
def kane_to_byte_lista(byte):
return [int(i) for i in format(byte[0],'08b')]
και μπορώ να σκεφτώ ότι αντί για 8*4=32 byte χώρο για κάθε στοιχείο έχω μόνο 1 byte
όμως πιστεύω δεν έιναι έτσι ακριβώς