0

テキストファイルを開いて文字の頻度を見つけ、辞書を使用して、文字と頻度、数字と頻度の辞書を取得する必要がありました。問題は、ほとんどの頻度で使用される大文字と頻度の数字のみを印刷する必要があることです。私はすべてのif文を試しましたが、うまくいかないようです。

例: 辞書 = {l:1, b: 6, A:5, 2:1, 5:3} と出力します (「最も使用されている大文字は: A で、5 回使用されています。)

4

2 に答える 2

1

とを使用filtermaxます。

>>> d = {'l':1, 'b': 6, 'A':5, '2':1, '5':3}
>>> digit = max(filter(str.isdigit, d), key=d.get)
>>> digit, d[digit]
('5', 3)
>>> upper = max(filter(str.isupper, d), key=d.get)
>>> upper, d[upper]
('A', 5)
于 2013-09-04T05:45:57.257 に答える
0

リスト内包表記やジェネレーター式も便利です。

>>> dic = {'l': 1, 'b': 6, 'A': 5, '2':1, 'B': 2, '5': 3}
>>> upper_words = ((word, frequency) for word, frequency in dic.iteritems() if word.isupper())
>>> more_frequently = lambda x1, x2: x2 if x2[1] > x1[1] else x1
>>> reduce(more_frequently, upper_words)
('A', 5)
于 2013-09-04T07:50:50.417 に答える