溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python 6.7 編寫printTable()函數(shù)表格打印(完整代碼)

發(fā)布時間:2020-10-02 06:18:59 來源:腳本之家 閱讀:329 作者:番薯仔 欄目:開發(fā)技術(shù)

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

輸入:

tableData = [[‘a(chǎn)pple',‘orange',‘cherry',‘banana'],
[‘Alice',‘Bob',‘Cathy',‘David'],
[‘dog',‘cat',‘bird',‘duck']]

輸出:

python 6.7 編寫printTable()函數(shù)表格打印(完整代碼)

因此首先要找到每一個內(nèi)層列表中最長的字符串長度,因?yàn)槲覀兛梢詫Ρ萾ableData列表和輸出的截圖。不難發(fā)現(xiàn)輸出的第一行為內(nèi)層列表的首項(xiàng),第二行為每個內(nèi)層列表的第二項(xiàng);第一列為第一個內(nèi)置列表的所有項(xiàng)并且是右對齊(與最長項(xiàng)對齊),因此:

colWidths = [0]*len(tableData)#colWidths列表中每個元素放置每個內(nèi)置列表的最長字符串長度
len1 = 0
#分別求列表的每一個內(nèi)置列表中最長的字符串的長度
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])

其次我們可以看到,打印得到的結(jié)果為一個四行三列的表格,因此可以得出函數(shù)printTable()中可以有一個兩層的嵌套循環(huán),第一層循環(huán)長度為4,第二層循環(huán)長度為3。而tableData列表共有3個內(nèi)置列表,每個內(nèi)置列表共有4項(xiàng),因此可以以內(nèi)層列表的長度為第一層循環(huán)長度,外層列表的長度為第二層循環(huán)的長度。
同時表格的每一列均為右對齊,對齊標(biāo)準(zhǔn)為內(nèi)層列表的最長項(xiàng)的長度,因此每一次對齊參數(shù)可以直接使用colWidths對應(yīng)的值。

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

完整代碼

def printTable(List1,List2):
 #第一層循環(huán)
 for i in range(len(List1[0])):
  #第二層循環(huán)
  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列表中每個元素放置每個內(nèi)置列表的最長字符串長度
len1 = 0
#分別求列表的每一個內(nèi)置列表中最長的字符串的長度
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)

總結(jié)

到此這篇關(guān)于python 6.7 編寫一個名為printTable()的函數(shù) 表格打印的文章就介紹到這了,更多相關(guān)python printTable()函數(shù) 表格打印內(nèi)容請搜索億速云以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持億速云!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI