教你如何運用python 6.7 編寫printTable()函式表格列印

大雄45發表於2020-04-13
導讀 這篇文章主要介紹了python 6.7 編寫一個名為printTable()的函式 表格列印,本文透過例項程式碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑑價值,需要的朋友可以參考下

編寫一個名為printTable()的函式,它接受字串的列表的列表,將它顯示在組織良好的表格中,每列右對齊。假定所有內層列表都包含同樣數目的字串
輸入:

tableData = [[‘apple',‘orange',‘cherry',‘banana'],
[‘Alice',‘Bob',‘Cathy',‘David'],
[‘dog',‘cat',‘bird',‘duck']]

輸出:

教你如何運用python 6.7 編寫printTable()函式表格列印教你如何運用python 6.7 編寫printTable()函式表格列印

因此首先要找到每一個內層列表中最長的字串長度,因為我們可以對比tableData列表和輸出的截圖。不難發現輸出的第一行為內層列表的首項,第二行為每個內層列表的第二項;第一列為第一個內建列表的所有項並且是右對齊(與最長項對齊),因此:

colWidths = [0]*len(tableData)#colWidths列表中每個元素放置每個內建列表的最長字串長度
len1 = 0
#分別求列表的每一個內建列表中最長的字串的長度
for i in range(len(tableData)):
 for j in range(len(tableData[i])):
  if len(tableData[i][j]) > colWidths[i]:#找最長
   colWidths[i] = len(tableData[i][j])

其次我們可以看到,列印得到的結果為一個四行三列的表格,因此可以得出函式printTable()中可以有一個兩層的巢狀迴圈,第一層迴圈長度為4,第二層迴圈長度為3。而tableData列表共有3個內建列表,每個內建列表共有4項,因此可以以內層列表的長度為第一層迴圈長度,外層列表的長度為第二層迴圈的長度。
同時表格的每一列均為右對齊,對齊標準為內層列表的最長項的長度,因此每一次對齊引數可以直接使用colWidths對應的值。

def printTable(List1,List2):
 #第一層迴圈
 for i in range(len(List1[0])):
  #第二層迴圈
  for j in range(len(List1)):
   print(List1[j][i].rjust(int(List2[j])),end=' ')
  print()

完整程式碼

def printTable(List1,List2):
 #第一層迴圈
 for i in range(len(List1[0])):
  #第二層迴圈
  for j in range(len(List1)):
   print(List1[j][i].rjust(int(List2[j])),end=' ')#列印完一行再換行
  print()
 
tableData = [
 ['apples','oranges','cherries','banana'],
 ['Alice','Bod','Carol','David'],
 ['dogs','cats','moose','goose']
    ]
colWidths = [0]*len(tableData)#colWidths列表中每個元素放置每個內建列表的最長字串長度
len1 = 0
#分別求列表的每一個內建列表中最長的字串的長度
for i in range(len(tableData)):
 for j in range(len(tableData[i])):
  if len(tableData[i][j]) > colWidths[i]:
   colWidths[i] = len(tableData[i][j])
 
printTable(tableData,colWidths)

原文來自: 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2685738/,如需轉載,請註明出處,否則將追究法律責任。

相關文章