2011-04-09 49 views
-3

編寫一個名爲hist()的Python函數,它將一個字符串作爲參數,並通過以字母大寫打印每個字母的次數來創建其字符串頻率的直觀表示形式,每個字母在一個單獨的行上,從最多到最少分組。python - Letter Frequency

+7

請郵寄到現在爲止您做了什麼。 – ThiefMaster 2011-04-09 19:26:06

回答

0

你的代碼很相似,你不需要閱讀該文件。

def hist(inputstr): 
    lowlet = inputstr.upper() 
    alphas = 'abcdefghijklmnopqrstuvwxyz'.upper() 
    occurrences = dict((letter, 0) for letter in alphas) 
    total = 0 
    for letter in lowlet: 
     if letter in occurrences: 
      total += 1 
      occurrences[letter] += 1 
    letcount = sorted(occurrences.iteritems(),key = lambda x:-x[1]) 
    for letter, count in letcount: 
     if count>0: 
      print letter*count 
+0

它工作的很完美.. thanxx ..但我只是不確定這是誰應該做的bcz問題,它要求編寫一個名爲hist()的Python函數。 – Sarah 2011-04-09 20:11:39

+0

哦,我們也可以把它寫成一個函數,我會更新答案。 – highBandWidth 2011-04-09 20:17:03

+0

由於某種原因,我無法運行這個 – Sarah 2011-04-09 20:23:23

2

一個更簡單的方法是:

import string 
def hist(s): 
    d = {} 
    for i in s.upper(): 
     if i.isalpha(): 
      d[i] = d[i] + 1 if i in d else 1 
    for k in sorted(d.keys()): 
     print k*d[k]