I have the following code which inverts IP_TABLE
to give FP_TABLE
.
IP_TABLE = [58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7]
FP_TABLE = [0]*64
for n in range(64):
FP_TABLE[IP_TABLE[n]-1] = n+1
This works fine, but is it possible to use a list comprehension? I wasn't sure how to do it because the index depends on the value of the item.
This will do it, though it seems very inefficient:
[IP_TABLE.index(n+1)+1 for n in range(64)]