我有一个格式如下的列表:
list_of_DVDsuppliers=[["a","m",15],["w","p",34]]
我想将此列表的内容打印为带有一些标题的表格。这是我到目前为止所尝试的内容:
def dvdprintsoftlist():
print(list_of_DVDsoftwears)
''' printing the available DVDstocks,supplier's details '''
print("This is your current list of stock")
print("Supplier Name Softwear Name Amount")
print("----------------------------------------------------------------")
for (index,[name,softname,amount]) in enumerate (list_of_DVDsuppliers):
print(name + " " +softname + " " +str(amount) + " ")
print("----------------------------------------------------------------")
print("")
问题是此代码未正确对齐表列。如何确保所有条目彼此对齐?
我还想以CSV格式导出我的数据,以便其他程序可以读取它,但这是一个单独的问题。
答案 0 :(得分:1)
您可以使用format()
,字符串中的{i:length}
将替换为参数,其中i
是订单标识符,length
是“长度”该领域。
def dvdprintsoftlist():
list_of_DVDsuppliers=[["a","m",15],["w","p",34]]
print(list_of_DVDsuppliers)
print
''' printing the available DVDstocks,supplier's details '''
print("This is your current list of stock")
print("Supplier Name\t\tSoftwear Name\t\tAmount")
print("----------------------------------------------------------------")
for [name, softname, amount] in list_of_DVDsuppliers:
print("{0:23} {1:23} {2:5}".format(name, softname, amount))
print("----------------------------------------------------------------")
print("")
dvdprintsoftlist()
答案 1 :(得分:0)
尝试在打印时使用%和s之间的填充位
你可以像......一样使用它们。
print('%-20s%-20s%-20s'%('supplier name','software name','amount'))
- 用于左边填充,+ ve(默认)用于右边填充