仅打印大多数频率大写字母,数字python

时间:2013-09-04 05:41:36

标签: python if-statement dictionary key

我必须打开一个文本文件,然后查找字符的频率 通过使用字典,我设法得到字母&频率和数字&频率。 事情是我必须打印最频率使用的带有频率和频率数字频率数字的upppercase字母。 我尝试了所有if语句,但它似乎不起作用。

ex:dictionary = {l:1,b:6,A:5,2:1,5:3} 它打印(“最常用的大写字母是:A并使用5次。)

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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)