Вывод динамического списка в таблицу
После выполнения некоторых операций у меня образуются несколько списков. Я написал код для вывода этих списков в виде таблицы.
s = ['Q:', " ".join(map(str, Q))]
data = [['TC:', " ".join(map(str, TC))], ['FC', " ".join(map(str, FC))],
['VC', " ".join(map(str, VC))],['ATC'," ".join(map(str, ATC))],
['MC', " ".join(map(str, MC))]]
print(tabulate.tabulate(data, headers, tablefmt='presto'))
Результат сейчас выводится так:
Q: | 0 1 2 3
---------------------+------------------
TC: | 5 6 7 8
FC | 5 5 5 5
VC | 0 1 2 3
ATC | None 6.0 3.5 2.6666666666666665
MC | None 1.0 1.0 1.0
Как исправить, чтобы выводилось так:
Q: | 0 |1 |2 |3
---------------------+---------------------------------
TC: | 5 |6 |7 |8
FC | 5 |5 |5 |5
VC | 0 |1 |2 |3
ATC | None |6.0 |3.5 |2.6666666666666665
MC | None |1.0 |1.0 |1.0
Ответы (1 шт):
Автор решения: finally
→ Ссылка
тут можно поиграться с форматными строками:
lst = [1, 2, 3, 4, 5]
line = "VALUE: |" + '|'.join([f'{value} ' for value in lst])
результат:
VALUE: |1 |2 |3 |4 |5
можно конечно совсем запариться и высчитывать длину каждого числа, чтоб если какое то имеет слишком большую точность то строки не поехали, но это уже на усмотрение. а так если все данные примерно равны можно просто высчитать длину отступов в пробелах и регулировать ее тут f'{value}___'