1

重複なしで、少なくともpパーセントの頻度で発生するシーケンスSのアイテムのソートされたリストを返す関数freqitems(S、p)の作成に支援が必要です。出力例は次のようになります。

>>> freqitems([2,2,2,3],50)
[2]
>>> freqitems(5*["alpha"]+["beta"]+3*["gamma"]+7*["delta"], 25)
['alpha', 'delta']
>>> freqitems(5*["alpha"]+["beta"]+3*["gamma"]+7*["delta"], 33)
['delta']
4

1 に答える 1

1
yourlist = 5*["alpha"]+["beta"]+3*["gamma"]+7*["delta"]

def freqitems(sequence, p):
  import collections
  counter = collections.Counter(sequence)
  return sorted([k for k,v in counter.iteritems() if 100.*v/len(sequence) >= p])

print freqitems(yourlist, 25)
print freqitems(yourlist, 33)
于 2012-10-02T04:51:27.963 に答える