Вот один из способов сделать это (при условии, что файловая структура такая, как вы сказали):
Сначала создайте строку, содержащую все строки:
lines = ''.join(list(open("test.txt")))
#'A\nB\n1\n2\n\nC\nD\n1\n2\n3\n4\n\nE\nF\n1\n2\n3\n4\n5\n6'
Затем разделите на пары :
pairs = lines.split('\n\n')
#['A\nB\n1\n2', 'C\nD\n1\n2\n3\n4', 'E\nF\n1\n2\n3\n4\n5\n6']
Наконец, внутри каждой пары разделить ключ и значение:
pairs = lines.split('\n\n')
result = {}
for pair in pairs:
data = pair.split('\n')
key = (data[0], data[1])
first_value = data[2::2]
second_value = data[3::2]
result[key] = [first_value, second_value]
result
Вывод:
{('A', 'B'): [['1'], ['2']],
('C', 'D'): [['1', '3'], ['2', '4']],
('E', 'F'): [['1', '3', '5'], ['2', '4', '6']]}
Примечание: data[2::2]
означает начало нарезки массива с позиции 2
и повторять каждые 2 элемента