2017-03-05 231 views
-1

我有一個函數,當前需要一個列表並創建一個表,統計每個項目在列表中出現的次數。當我使用單個字符項目運行它時,頻率列會以一個很好的偶數行返回。但是當物品不止一個字符時,那麼這些頻率都是不對齊的。我怎樣才能解決這個問題在Python中?Python表格對齊/填充?

這裏是一個什麼樣的結果看起來像一個圖片(因爲我無法弄清楚如何使一個表......)這兩個例子:

enter image description here

freqTable([1, 2, 3, 3, 1, 4, 5]) 

freqTable(['CIS', 'CIS', 'CIS', 'J', 'Psy', 'Psy']) 

如何修復對齊?

編輯:它由3個功能

def drawTable(freqD): 

    iteml = list(freqD.keys()) 
    iteml.sort() 

    title = 'ITEM' + (' '*2) + 'FREQUENCY' 
    print(title) 

    for item in iteml: 
     print(item, ' '*3, freqD[item]) 

    return None 

def genFreqTable(alist): 

    freqD = {} 

    for item in alist: 
     if item in freqD: 
      freqD[item] += 1 
     else: 
      freqD[item] = 1 

    return freqD 


def freqTable(alist): 

    freqD = genFreqTable(alist) 
    drawTable(freqD) 

    return None 

赫雷什測試用例 freqTable([1,2,3,4]) freqTable([ 'CIS', 'CIS',「CIS 」,‘J’,‘精神科’,‘精神科’

+0

哪裏是你的功能如何看待像 – DyZ

+0

什麼是'freqTable' ?請顯示您的代碼。請參閱注意*文字*,而不是圖像。這是我們可以複製文本並自己嘗試。 – cdarke

+0

做...忘了補充一點。現在編輯 – user2951723

回答

0

您必須使用格式化輸出打印,如:??

print("%-4s\t%3d" % (item, freqD[item]))