Python如何实现元组列表打印为带首行表头的两列格式
解决方案
问题分析
现有代码的核心问题:
- 第一段代码的表头未和内容使用统一的对齐规则,上下显示错位
- 第二段代码在循环内重复打印表头,且
zip(portfolio)操作会将原本的二元组额外套一层元组,输出格式完全混乱
修正后的完整可运行代码
def initialize_portfolio(): portfolio = [] with open('holdings.txt', 'r', encoding='utf-8') as file: for line in file: line = line.strip() # 跳过文件中的空行避免报错 if not line: continue symbol, amt = line.split() # 金额转成整数方便后续处理,不需要转类型可以直接存字符串 portfolio.append((symbol, int(amt))) return portfolio def print_portfolio(portfolio): # 表头和内容统一使用左对齐、10字符宽度规则,可根据实际内容长度调整宽度 print(f'{"Symbol":<10} {"Amount":<10}') # 可选添加分隔线,和预期示例效果更贴合 print('-' * 20) for symbol, amt in portfolio: print(f'{symbol:<10} {amt:<10}') # 调用示例 if __name__ == '__main__': port = initialize_portfolio() print_portfolio(port)
自定义调整说明
- 如果要让数字更符合阅读习惯右对齐,只需要把
{amt:<10}修改为{amt:>10} - 如果实际内容长度更长,把所有的
10改成更大的数值即可适配
内容的提问来源于stack exchange,提问作者Taylor Blake
相关产品推荐
相关产品推荐

