1

我有一个格式如下的列表:

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 格式导出我的数据,以便其他程序可以读取它,但这是一个单独的问题。

4

2 回答 2

2

您可以使用in 字符串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()
于 2013-10-24T03:47:07.513 回答
0

打印时尝试使用 % 和 s 之间的填充位

你可以像...一样使用它们

print('%-20s%-20s%-20s'%('supplier name','software name','amount'))  

- 用于左填充和 +ve(默认)用于右填充

于 2013-10-24T03:39:43.950 回答