Python中如何将列表数据按垂直列格式打印为表格?
垂直直方图打印解决方案
错误原因
你构造DataFrame时将完整列表作为单个值传入单元格,导致所有星号被压缩到同一行,无法按垂直方向展示。
实现步骤
- 计算4个分类的最大计数,作为直方图的总行数
- 将所有星号列表补全至总行数长度,不足的位置填充空字符串
- 直接用补全后的列表构造DataFrame,不要额外嵌套列表
- 用tabulate打印即可得到目标效果
可运行代码示例
import pandas as pd from tabulate import tabulate # 示例数据可替换为你自己的计数变量 progress_number = 1 trailer_number = 1 retriever_number = 2 excluded_number = 1 # 生成各分类的星号列表 progress_list = ["*"] * progress_number trailer_list = ["*"] * trailer_number retriever_list = ["*"] * retriever_number exclude_list = ["*"] * excluded_number # 计算最大行数 max_rows = max(len(progress_list), len(trailer_list), len(retriever_list), len(exclude_list)) # 补全所有列表到相同长度,短列表补空字符串 def pad_list(lst, target_length): return lst + [""] * (target_length - len(lst)) progress_list = pad_list(progress_list, max_rows) trailer_list = pad_list(trailer_list, max_rows) retriever_list = pad_list(retriever_list, max_rows) exclude_list = pad_list(exclude_list, max_rows) # 构造DataFrame,直接传入补全后的列表,不要嵌套[] df = pd.DataFrame({ 'Progress': progress_list, 'Trailer': trailer_list, 'Retriever': retriever_list, 'Excluded': exclude_list }) # 打印结果 print(tabulate(df, headers='keys', tablefmt='plain', showindex=False))
输出效果示例
Progress Trailer Retriever Excluded * * * * *
内容的提问来源于stack exchange,提问作者Vinula Senarathne
相关产品推荐
相关产品推荐

