如何在Python中使用print函数实现表格格式化的对齐输出?
时间: 2024-12-15 21:21:39 浏览: 4
python print 格式化输出,动态指定长度的实现
在Python中,你可以使用`f-string`(格式化字符串)或者`string.Template`模块以及`textwrap`模块来实现表格格式化的对齐输出。这里我会介绍两种常见的方法:
**方法一:使用 f-string 和制表符(tab)**
```python
def print_table(data, align='left'):
column_widths = [max(len(str(value)) for value in col) for col in zip(*data)]
for row in data:
print(' '.join(f'{cell:{align}{width}}' for cell, width in zip(row, column_widths)))
# 示例数据
data = [['Name', 'Age', 'City'],
['Alice', '25', 'New York'],
['Bob', '30', 'London']]
print_table(data)
```
**方法二:使用 textwrap 模块**
```python
import textwrap
def print_table(data):
# 获取列宽
max_len = lambda col: max(len(str(item)) for item in col)
column_widths = [max_len(col) for col in zip(*data)]
for row in data:
formatted_row = '|'.join(textwrap.wrap(' '.join(f'{item:<{width}}' for item, width in zip(row, column_widths)), width=max(column_widths) + 2))
print(formatted_row)
data = [['Name', 'Age', 'City'],
['Alice', '25', 'New York'],
['Bob', '30', 'London']]
print_table(data)
```
这两种方法都可以根据你的需求调整对齐方式(如左对齐、右对齐或居中),以及列宽。
阅读全文