2013-10-24 61 views
0

列表中,列出了我格式化類似下面的列表:印刷以表格的形式在Python

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

我只是用這個代碼 高清dvdprintsoftlist(): 打印(list_of_DVDsoftwears) '' '打印可用DVDstocks,供應商的詳細信息 ''' 打印( 「這是您當前的股票列表」) print(「Supplier Name Softwear Name Amount」) print(「------------------------------------ ----------------------------「) for(index,[name,softname,amount])in enumerate(list_of_DVDsuppliers): 打印(名稱+「」+ softname +「」+ str(金額)+「」) print(「-------------------------- --------------------------------------「) print(「」) – user2912389

+0

@stackErr hlp mee – user2912389

+1

您是否發現http://stackoverflow.com/questions/9535954/python-printing-lists-as-tabular-data? – atomicinf

回答

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() 
+0

這個錯誤appered 回溯(最近通話最後一個): 文件 「C:\用戶\ AAA \桌面\ python的差不多了模塊useage.py的\測試」,第11行,在 進口modulenew 文件「C: \用戶\ AAA \桌面\ python差不多完成\ modulenew.py「,第263行 打印」{0:23} {1:23} {2:5}「格式(名稱,軟名稱,金額) ^ SyntaxError :無效語法 – user2912389

+0

在一個新文件中嘗試這個代碼。看看它是如何工作的,然後嘗試將它添加到你的代碼中。 PS:如果它是一個SyntaxError,你可能寫的東西不正確 – Christian

+0

好吧,我會多謝的 – user2912389

0

嘗試使用%和S之間填充比特打印時

你可以用它們像...

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

- 用於左填充和+ VE(默認值)爲右填充

+0

如何將此填充添加到我的代碼請你能幫我嗎? – user2912389