Не знаю, нужна ли вам именно эта структура, но попробуйте следующее:
import collections
txt = """0 1 1
3,1 3,1 3,1
5,0 5,1 5,0
6,1 6,0 6,0"""
header = list(map(int,txt.splitlines()[0].split()))
output = collections.OrderedDict()
for line in txt.splitlines()[1:]:
cols = line.split()
row_num = int(cols[0].split(",")[0])
vals = [(header[i],int(c.split(",")[1])) for i, c in enumerate(cols)]
output[row_num] = vals
print(output)
Вывод:
OrderedDict([('3', [(0, 1), (1, 1), (1, 1)]), ('5', [(0, 0), (1, 1), (1, 0)]), ('6', [(0, 1), (1, 0), (1, 0)])])
Чтобы загрузить файл:
with open("file.txt") as f:
txt = f.read()