如何找到字符串中的最大相对频率,python?

2024-03-29 12:16:46 发布

您现在位置:Python中文网/ 问答频道 /正文

如何找到字符串中的最大相对频率?接受字符串参数并返回字符串中任何字母的最高相对频率的函数。例如,字符串“sufficit”有8个字母,最常见的字母是f和i,它们都出现两次。因此,最高相对频率为2/8。字符串“Non-even”有7个字母(-不是字母),最常见的字母是n,出现三次(一个n和两个n)。因此,最高相对频率为3/7

def max_rel_freq(string):
    dic = {}
    total = float(len(string))
    for ch in string:
        if ch in dic:
            dic[ch] = dic[ch] + 1
        else:
            dic[ch] = 1

    frequencies = []
    for s in string:
        frequencies.append(float(dic[s]/total))
    return max(frequencies)

这只适用于“足够”,但不提供“非偶数”所需的输出


Tags: 函数字符串infor参数string字母ch
1条回答
网友
1楼 · 发布于 2024-03-29 12:16:46

这应该行得通

def max_rel_freq(string):
    max_freq = 1
    string = string.lower()
    string = list(map(str,string.strip('')))
    for i in string:
        if string.count(i)> max_freq:
            max_freq = string.count(i)
    return max_freq

相关问题 更多 >