2016-09-04 1 views
3

私は別のテーブルの隣に2つのテーブルを表示したいと思います。テーブル - テーブルをカスケードする方法

私のアプローチ:

test_table1 = tabulate([['Alice', 24], ['Bob', 19]]) 
test_table2 = tabulate([['Hans', 45], ['John', 38]]) 
master_headers = ["table1", "table2"] 
master_table = tabulate([[test_table1, test_table2]], 
         master_headers, tablefmt="simple") 
print(master_table) 

しかし、両方のテーブルで、この結果は、TABLE1の列に表示されています。

参照: enter image description here

質問:私が好ましく集計(または類似のライブラリ)を使用して、Pythonでテーブルをカスケード接続するにはどうすればよいですか?

ありがとうございます!

マフ

答えて

1

これはあなたが得る最良の選択である場合、私は本当に知りませんが、それは私が

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の配列を渡すことでしたmaster_tableさんtabulate、それは.splitlines()

>>>str(tabulate([['Alice', 24], ['Bob', 19]])) 
>>>'----- --\nAlice 24\nBob 19\n----- --' 
>>>str(tabulate([['Alice', 24], ['Bob', 19]])).splitlines() 
>>>['----- --', 'Alice 24', 'Bob 19', '----- --'] 

test_table1test_table2

で行われていたようなので、私たちは['----- --', 'Alice 24', 'Bob 19', '----- --']['---- --', 'Hans 45', 'John 38', '---- --']を持っていましたが、我々は彼らにそのように渡すことはできませんにtrings出力が非常に奇妙になるからです。

table1  table2 
--------- --------- --------- --------- 
----- -- Alice 24 Bob 19 ----- -- 
---- -- Hans 45 John 38 ---- -- 
>>>[list(item) for item in zip(test_table1,test_table2)] 
>>>[['----- --', '---- --'], 
    ['Alice 24', 'Hans 45'], 
    ['Bob 19', 'John 38'], 
    ['----- --', '---- --']] 

をそして、それはtabulateが簡単にデータを取得する方法の方法であり、あなたのように置く:だから我々はzipにこれらのリストを必要に応じて、tupleオブジェクトのzip復帰listので、listに値を変換し、それはここで何が起こったのです希望。

関連する問題