dawed1999
dawed1999

Reputation: 335

(Python)Formatting the elements in my list

So i'm trying to get the elements in my list to be 7 bytes long but I had no luck in trying to do that myself.

redChannelData = [46, 49, 50, 51, 53, 53, 54, 56, 59, 59, 60, 61, 62, 62, 64, 64, 65, 65]
redChannelList = []
for value in redChannelData:
    redChannelListBinary = bin(value)[2:]
    redChannelList.append(redChannelListBinary)
redChannelListBinaryList = [[int(b) for b in binary] for binary in redChannelList]
print(redChannelListBinaryList)
Output:

[[1, 0, 1, 1, 1, 0], [1, 1, 0, 0, 0, 1], [1, 1, 0, 0, 1, 0], [1, 1, 0, 0, 1, 1], [1, 1, 0, 1, 0, 1], [1, 1, 0, 1, 0, 1], [1, 1, 0, 1, 1, 0], [1, 1, 1, 0, 0, 0], [1, 1, 1, 0, 1, 1], [1, 1, 1, 0, 1, 1], [1, 1, 1, 1, 0, 0], [1, 1, 1, 1, 0, 1], [1, 1, 1, 1, 1, 0], [1, 1, 1, 1, 1, 0], [1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 1]]

Upvotes: 2

Views: 64

Answers (2)

toom501
toom501

Reputation: 354

You can try like this:

redChannelData = [46, 49, 50, 51, 53, 53, 54, 56, 59, 59, 60, 61, 62, 62, 64, 64, 65, 65]
redChannelList = []
for value in redChannelData:
    redChannelListBinary = bin(value)[2:]
    while len(redChannelListBinary) < 7:
        redChannelListBinary = '0' + redChannelListBinary
    redChannelList.append(redChannelListBinary)
redChannelListBinaryList = [[int(b) for b in binary] for binary in redChannelList]
print(redChannelListBinaryList)

the output:

[[0, 1, 0, 1, 1, 1, 0], [0, 1, 1, 0, 0, 0, 1], [0, 1, 1, 0, 0, 1, 0], [0, 1, 1, 0, 0, 1, 1], [0, 1, 1, 0, 1, 0, 1], [0, 1, 1, 0, 1, 0, 1], [0, 1, 1, 0, 1, 1, 0], [0, 1, 1, 1, 0, 0, 0], [0, 1, 1, 1, 0, 1, 1], [0, 1, 1, 1, 0, 1, 1], [0, 1, 1, 1, 1, 0, 0], [0, 1, 1, 1, 1, 0, 1], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 1]]

Upvotes: 1

Siong Thye Goh
Siong Thye Goh

Reputation: 3586

I use the format function and specify that I am interested up to 7 bits.

redChannelData = [46, 49, 50, 51, 53, 53, 54, 56, 59, 59, 60, 61, 62, 62, 64, 64, 65, 65]
redChannelList = []
for value in redChannelData:
    redChannelListBinary = format(value, '07b')
    redChannelList.append(redChannelListBinary)
redChannelListBinaryList = [[int(b) for b in binary] for binary in redChannelList]
print(redChannelListBinaryList)

gives output

[[0, 1, 0, 1, 1, 1, 0], [0, 1, 1, 0, 0, 0, 1], [0, 1, 1, 0, 0, 1, 0], [0, 1, 1, 0, 0, 1, 1], [0, 1, 1, 0, 1, 0, 1], [0, 1, 1, 0, 1, 0, 1], [0, 1, 1, 0, 1, 1, 0], [0, 1, 1, 1, 0, 0, 0], [0, 1, 1, 1, 0, 1, 1], [0, 1, 1, 1, 0, 1, 1], [0, 1, 1, 1, 1, 0, 0], [0, 1, 1, 1, 1, 0, 1], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 1]]

Upvotes: 3

Related Questions