作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用制表法将两个表格并排显示。
我的方法:
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 的列中。
问题:如何在 python 中级联表,最好使用制表(或类似的库)?
提前致谢!
手袋
最佳答案
我真的不知道这是否是您得到的最佳选择,但这就是我想出的
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
----- -- ---- --
解释:
目的是将字符串数组传递给 master_table 的 tabulate
,就像对 test_table1 和 test_table2< 所做的那样/em>
使用 .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
轻松获取数据并按照您的需要放置的方式。
关于python - 制表 - 如何级联表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39321014/
我是一名优秀的程序员,十分优秀!