У меня есть вопрос, который включает в себя различные шаги.
Я анализирую файл, который выглядит следующим образом:
9
123
0 987
3 890 234 111
1 0 1 90 1 34 1 09 1 67
1 684321
2 352 69
1 1 1 243 1 198 1 678 1 11
2 098765
1 143
1 2 1 23 1 63 1 978 1 379
3 784658
1 43
1 3 1 546 1 789 1 12 1 098
Я хочу сделать эти строки в файле, ключисловарь (игнорируя первое число и просто беря второе, потому что он просто указывает, какой номер ключа должен быть):
0 987
1 684321
2 098765
3 784658
И это строки, значения элементов (игнорируя только первое числопотому что он просто указывает, сколько элементов):
3 890 234 111
2 352 69
1 143
1 43
В конце это должно выглядеть так:
d = {987 : [890, 234, 111], 684321 : [352, 69],
098765 : [143], 784658 : [43]}
Пока у меня есть это:
findkeys = re.findall(r"\d\t(\d+)\n", line)
findelements = re.findall(r"\d\t(\d+)", line)
listss.append("".join(findelements))
d = {findkeys: listss}
Регулярные выражения нуждаются в большем количестве исключений, потому что одно для ключей, оно дает мне элементы других строк, которые я не хочу, чтобы они были ключами, но тоже имею только одно число.Как и в примере с файлом, в результате появляется число 43.
И регулярное выражение элементов возвращает мне все строки.
Я не знаю, будет ли этобыло бы проще сделать так, чтобы код игнорировал строки, информация о которых мне не нужна, но я не знаю, как это сделать.
Я хочу, чтобы все было просто.Спасибо!