python输出表格,使其列对其
时间: 2023-08-02 10:14:37 浏览: 192
要使输出的表格列对齐,可以使用字符串的格式化功能。例如,假设我们要输出以下表格:
```
| Name | Age | Gender |
|-------------|-----|--------|
| John Smith | 28 | Male |
| Jane Doe | 35 | Female |
| Bob Johnson | 42 | Male |
```
可以使用以下代码:
```python
data = [
('Name', 'Age', 'Gender'),
('John Smith', 28, 'Male'),
('Jane Doe', 35, 'Female'),
('Bob Johnson', 42, 'Male')
]
# 计算每列的最大宽度
col_widths = [max(len(str(x)) for x in col) for col in zip(*data)]
# 输出表格头
print('|'.join('{:^{width}}'.format(x, width=col_widths[i]) for i, x in enumerate(data[0])))
# 输出分隔线
print('|'.join('-' * col_widths[i] for i in range(len(data[0]))))
# 输出数据行
for row in data[1:]:
print('|'.join('{:^{width}}'.format(x, width=col_widths[i]) for i, x in enumerate(row)))
```
在这个例子中,我们首先计算每一列的最大宽度,然后使用字符串的 `format()` 方法来格式化每个单元格,使其居中并占用相应的宽度。最后,我们使用 `join()` 方法将单元格连接起来,并在单元格之间插入竖线字符 `|`。输出结果如下:
```
| Name | Age | Gender |
|-----------|-----|--------|
| John Smith | 28 | Male |
| Jane Doe | 35 | Female |
|Bob Johnson| 42 | Male |
```
注意,如果单元格中的文本长度超过了其所在列的最大宽度,那么输出的表格可能会被破坏。要解决这个问题,可以考虑使用更复杂的对齐方式,例如左对齐、右对齐等。
阅读全文