这段代码将查找字符串中出现频率最高的chr,并且通过字典几乎可以正常工作,但是不幸的是,当两个键具有相同的频率时,我想让它返回最后一个键,但它返回第一个。
这是我到目前为止所做的:
def most_frequent_letter(s):
st = s.lower().replace(' ', '')
frequencies = {}
for items in st:
if items in frequencies:
frequencies[items] += 1
else:
frequencies[items] = 1
return max(frequencies, key=frequencies.get)
most_frequent_letter('mmmaaa')
Out[48]: 'm'
但是我不知道如何返回“ a”而不是“ m”。
这是创建反向频率字典的方法。通过使用字典理解,我还使频率字典及其反向的创建相当简洁:
def most_frequent_letter(s):
st = s.lower().replace(' ', '')
frequencies = {}
frequencies = {item: frequencies.setdefault(item, 0) + 1 for item in st}
rev_freq = {count: key for key, count in frequencies.items()}
return rev_freq[max(rev_freq)]
print(most_frequent_letter('nnmmmaaa')) # -> a
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句