python 6.7 編寫printTable()函數(shù)表格打印(完整代碼)
編寫一個(gè)名為printTable()
的函數(shù),它接受字符串的列表的列表,將它顯示在組織良好的表格中,每列右對(duì)齊。假定所有內(nèi)層列表都包含同樣數(shù)目的字符串
輸入:
tableData = [[‘a(chǎn)pple',‘orange',‘cherry',‘banana'], [‘Alice',‘Bob',‘Cathy',‘David'], [‘dog',‘cat',‘bird',‘duck']]
輸出:
因此首先要找到每一個(gè)內(nèi)層列表中最長(zhǎng)的字符串長(zhǎng)度,因?yàn)槲覀兛梢詫?duì)比tableData列表和輸出的截圖。不難發(fā)現(xiàn)輸出的第一行為內(nèi)層列表的首項(xiàng),第二行為每個(gè)內(nèi)層列表的第二項(xiàng);第一列為第一個(gè)內(nèi)置列表的所有項(xiàng)并且是右對(duì)齊(與最長(zhǎng)項(xiàng)對(duì)齊),因此:
colWidths = [0]*len(tableData)#colWidths列表中每個(gè)元素放置每個(gè)內(nèi)置列表的最長(zhǎng)字符串長(zhǎng)度 len1 = 0 #分別求列表的每一個(gè)內(nèi)置列表中最長(zhǎng)的字符串的長(zhǎng)度 for i in range(len(tableData)): for j in range(len(tableData[i])): if len(tableData[i][j]) > colWidths[i]:#找最長(zhǎng) colWidths[i] = len(tableData[i][j])
其次我們可以看到,打印得到的結(jié)果為一個(gè)四行三列的表格,因此可以得出函數(shù)printTable()中可以有一個(gè)兩層的嵌套循環(huán),第一層循環(huán)長(zhǎng)度為4,第二層循環(huán)長(zhǎng)度為3。而tableData列表共有3個(gè)內(nèi)置列表,每個(gè)內(nèi)置列表共有4項(xiàng),因此可以以內(nèi)層列表的長(zhǎng)度為第一層循環(huán)長(zhǎng)度,外層列表的長(zhǎng)度為第二層循環(huán)的長(zhǎng)度。
同時(shí)表格的每一列均為右對(duì)齊,對(duì)齊標(biāo)準(zhǔn)為內(nèi)層列表的最長(zhǎng)項(xiàng)的長(zhǎng)度,因此每一次對(duì)齊參數(shù)可以直接使用colWidths對(duì)應(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列表中每個(gè)元素放置每個(gè)內(nèi)置列表的最長(zhǎng)字符串長(zhǎng)度 len1 = 0 #分別求列表的每一個(gè)內(nèi)置列表中最長(zhǎng)的字符串的長(zhǎng)度 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 編寫一個(gè)名為printTable()的函數(shù) 表格打印的文章就介紹到這了,更多相關(guān)python printTable()函數(shù) 表格打印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)讀取文本文件并轉(zhuǎn)換為pdf
這篇文章主要為大家詳細(xì)介紹了如何使用Python簡(jiǎn)便快捷地完成TXT文件到PDF文檔的轉(zhuǎn)換,滿足多樣化的文檔處理需求,感興趣的小伙伴可以參考下2024-04-04Github?Copilot結(jié)合python的使用方法詳解
最近也是聽說github出了一種最新的插件叫做copilot,于是申請(qǐng)了,下面這篇文章主要給大家介紹了關(guān)于Github?Copilot結(jié)合python使用的相關(guān)資料,需要的朋友可以參考下2022-04-04Python最基本的數(shù)據(jù)類型以及對(duì)元組的介紹
這篇文章主要介紹了Python最基本的數(shù)據(jù)類型以及對(duì)元組的介紹,來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04Python數(shù)據(jù)獲取實(shí)現(xiàn)圖片數(shù)據(jù)提取
本文主要介紹了Python數(shù)據(jù)獲取實(shí)現(xiàn)圖片數(shù)據(jù)提取,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05python數(shù)據(jù)分析實(shí)戰(zhàn)指南之異常值處理
數(shù)據(jù)預(yù)處理是明確分析目標(biāo)與思路之后進(jìn)行數(shù)據(jù)分析的第一步,也是整個(gè)項(xiàng)目中最基礎(chǔ)、花費(fèi)時(shí)間較長(zhǎng)的工作,下面這篇文章主要給大家介紹了關(guān)于python數(shù)據(jù)分析實(shí)戰(zhàn)指南之異常值處理的相關(guān)資料,需要的朋友可以參考下2022-01-01Python解決拋小球問題 求小球下落經(jīng)歷的距離之和示例
這篇文章主要介紹了Python解決拋小球問題 求小球下落經(jīng)歷的距離之和,涉及Python基于遞歸的數(shù)值計(jì)算相關(guān)操作技巧,需要的朋友可以參考下2018-02-02