Предполагая, что все списки имеют одинаковую длину, вы можете сделать:
d = {'BTC': [(None, None), (1, -0.4), (3, 0.3333333333333333), (0, 0.75), (1, None)],
'ETH': [(None, None), (0, 0.5), (0, 0.3333333333333333), (0, -0.1), (2, None)]}
table = {}
for key, values in d.items():
for i, value in enumerate(values):
table.setdefault(i, {})[key] = value
result = list(table.values())
print(result)
Вывод
[{'BTC': (None, None), 'ETH': (None, None)}, {'BTC': (1, -0.4), 'ETH': (0, 0.5)}, {'BTC': (3, 0.3333333333333333), 'ETH': (0, 0.3333333333333333)}, {'BTC': (0, 0.75), 'ETH': (0, -0.1)}, {'BTC': (1, None), 'ETH': (2, None)}]
Идея состоит в том, чтобы создать словарь, в которомключ - это индексы, а значения - ожидаемые словари.