Я действительно не знаю, если это лучший выбор, который вы получите, но это то, что я придумал
test_table1 = str(tabulate([['Alice', 24], ['Bob', 19]])).splitlines()
test_table2 = str(tabulate([['Hans', 45], ['John', 38]])).splitlines()
master_headers = ["table1", "table2"]
master_table = tabulate([list(item) for item in zip(test_table1,test_table2)],
master_headers, tablefmt="simple")
print(master_table)
Выход:
table1 table2
--------- --------
----- -- ---- --
Alice 24 Hans 45
Bob 19 John 38
----- -- ---- --
Пояснение:
Целью было передать массив s trings к master_table «ы tabulate
, как это было сделано с test_table1 и test_table2
С .splitlines()
>>>str(tabulate([['Alice', 24], ['Bob', 19]]))
>>>'----- --\nAlice 24\nBob 19\n----- --'
>>>str(tabulate([['Alice', 24], ['Bob', 19]])).splitlines()
>>>['----- --', 'Alice 24', 'Bob 19', '----- --']
Таким образом, мы имели ['----- --', 'Alice 24', 'Bob 19', '----- --']
и ['---- --', 'Hans 45', 'John 38', '---- --']
, но мы не можем передать им, что путь , поскольку выход будет довольно странным:
table1 table2
--------- --------- --------- ---------
----- -- Alice 24 Bob 19 ----- --
---- -- Hans 45 John 38 ---- --
Так нам нужно zip
эти списки, и преобразовывать значения в list
, потому что zip
возвратного list
из tuple
объектов, то, что произошло здесь:
>>>[list(item) for item in zip(test_table1,test_table2)]
>>>[['----- --', '---- --'],
['Alice 24', 'Hans 45'],
['Bob 19', 'John 38'],
['----- --', '---- --']]
И именно так, как tabulate
легко будет получить данные и поставить, как вы желательно.