如何用Python将追加的物品-数量列表输出为表格格式?
解决物品与数量同行表格化展示的问题
你的核心问题是everything列表按「物品名称-数量」的顺序依次存储元素,遍历打印时会逐个换行。要实现同行展示,关键是把列表中的元素两两分组,再格式化输出对齐。
方法一:按步长遍历列表
直接通过索引步长为2的循环,每次取出一组名称和数量:
# 假设这是你生成报告的代码块 print("库存报告") # 从索引0开始,每次跳2个元素,遍历所有物品名称的位置 for i in range(0, len(everything), 2): # 确保不会因为列表长度为奇数导致索引越界 if i + 1 >= len(everything): print(f"{everything[i]:<10} 无对应数量") continue item = everything[i] qty = everything[i+1] # 用格式化字符串做对齐:物品名左对齐占10位,数量紧跟其后 print(f"{item:<10} {qty}")
方法二:拆分列表后配对
把列表拆成「物品名列表」和「数量列表」,再用zip配对输出:
print("库存报告") # 切片拆分:偶数索引是物品名,奇数索引是数量 items = everything[::2] quantities = everything[1::2] # 配对每组名称和数量 for item, qty in zip(items, quantities): print(f"{item:<10} {qty}") # 如果担心列表长度不一致(比如漏加了数量),可以用zip_longest补全 from itertools import zip_longest for item, qty in zip_longest(items, quantities, fillvalue="缺失"): print(f"{item:<10} {qty}")
两种方法都能实现你要的效果,比如输入["Jam",40,"Sprite",30],输出会是:
Jam 40 Sprite 30
其中:<10是格式化语法,让物品名左对齐并占据10个字符宽度,这样不同长度的名称后面的数量能整齐对齐,看起来更像表格。
内容的提问来源于stack exchange,提问作者Tyler E-A
相关产品推荐
相关产品推荐

