2016-07-14 83 views
-2

Python noob在這裏需要一些幫助。從出現列表創建「直方圖」

我有一組數據,格式爲[['item', count], ........]和需要創建排序的直方圖,打印數爲每十個出現一個星號。

例子:

list=[['a', 22], ['b', 11], ['c', 45]] 

柱狀圖:

a ** 
b * 
c **** 

任何想法將是非常有益的。

回答

0
data = [['a', 22], ['b', 11], ['c', 45]] 
for item in data: 
    print(item[0] + ': ' + ('*' * (item[1] // 10))) 

您可以使用*運算符多次打印字符串。所以'*' * 5產生*****。我會用字典來代替列表:

data = {'a': 22, 'b':11, 'c':45} 
for item in data: 
    print(item + ': ' + ('*' * (data[item] // 10))) 

只是因爲字典更適合你的目的。

+0

如果我只想每10個計數一個星號,該怎麼辦? – Wyatt

+0

我更新了它。 '// 10'部分截斷,所以上面的代碼確實每10個計數顯示一個星號。 45 // 10 = 4(轉換爲忽略小數部分)。 –