【发布时间】:2020-01-05 16:51:27
【问题描述】:
我是 python 新手。
我有以下列表:
硬件 = [“主板”、“cpu”、“gpu”]
数量 = [5, 8, 4, 6]
成本 = [210.0, 250.5, 360.8]
我想打印一个输出,如您在下面链接中提供的 txt 文件中看到的那样。
我的尝试如下:
hardware = ["motherboard", "cpu", "gpu"]
amount = [5, 8, 4, 6]
cost = [210.0, 250.5, 360.8]
product_cost = [a*b for a,b in zip(amount, cost)]
total = sum(product_cost)
titles = ['Hardware', 'Amount', 'Cost per item', 'Total cost per hardware']
data = [titles] + list(zip(hardware, amount, cost, product_cost))
for i, d in enumerate(data):
line = ' '.join(str(x).ljust(12) for x in d)
print(line)
if i == 0:
print(' ' * len(line))
print('\n' "Total cost: " + str(total))
但是我得到的输出不是你在 txt 文件中看到的期望的输出
我附上 txt 文件。这是txt的链接:
https://drive.google.com/open?id=1vANzMk9z2cxTWJRlwH3AkudN_jlG3iah
你能帮我得到想要的结果吗?
【问题讨论】:
-
因为您的问题在于格式,您可以使用任何制作整齐表格的模块。但还是等一下,其他人可以帮忙。
-
列有不同的宽度,所以首先你应该为列中的所有元素获取
len(),并获取max()的长度。并且仅在第一列中使用ljust()。其他列需要rjust()。或为此查找模块 - 例如tabulate