2015-03-31 18 views
1

可以說我有列表myList = [1, 1, 2, 2, 2, 3] 我想統計列表中每個數字的頻率並將其變爲某種圖形與輸出:Python統計列表中每個數字的頻率,沒有任何count()函數或者沒有導入任何內容

1: X X 
2: X X X 
3: X 

但我不明白。我很新的Python和我需要做沒有任何內置的功能和代碼,而無需使用進口導入任何

+3

沒有內置功能? – 2015-03-31 00:26:16

+2

你有沒有試過?你有一個想法,你會怎麼做?或者你會嘗試什麼(即使你不知道如何)? – 2015-03-31 00:26:57

+0

即使打印是Python 3.x中的一個函數。順便說一句,什麼Python版本? – 2015-03-31 00:27:01

回答

3

一個dict爲基礎的解決方案:

myList = [1, 1, 2, 2, 2, 3] 
output = {} 

for item in myList: 
    if item not in output: 
     output[item] = 0 
    output[item] += 1 

然後打印:

for number, count in output.iteritems(): 
    print "{0}: {1}".format(number, "X " * count) 
+0

即時得到這個錯誤:對於數量,在output.iteritems()計數: AttributeError:'字典'對象沒有屬性'iteritems' – Aroch925 2015-03-31 00:57:20

+0

@ AlexRochford你在使用Python 3.用'items'替換'iteritems'。原因:在python2中,'items'返回一個列表,'iteritems'返回一個迭代器。在python3中,'items'返回一個迭代器並且'iteritems'不存在。 – Kroltan 2015-03-31 00:59:12

+0

好吧,我改變了它,但它只打印出一個元素。所以myList = [5,5,5,6,6],它只打印5:X X X – Aroch925 2015-03-31 02:15:07

1

反正Python的標準庫有一個適當的模塊是,Counter

>>> from collections import Counter 
>>> myList = [1, 1, 2, 2, 2, 3] 
>>> print Counter(myList) 
Counter({2: 3, 1: 2, 3: 1}) 
+1

「沒有任何內置函數,也沒有使用導入導入任何內容」 - 來自OP問題。 – Marcin 2015-03-31 00:38:31