欢迎访问宙启技术站
智能推送

编写一个Python函数来计算字符串中的字母频率

发布时间:2023-06-08 09:33:49

以下是一个Python函数,用于计算字符串中每个字母及其出现次数的频率。

def letter_frequency(string):
    """
    计算字符串中每个字母及其出现次数的频率。

    参数:
    string - 要计算字母频率的字符串。

    返回值:
    字典,包含字符串中每个字母及其出现次数的频率。
    """

    # 创建一个字典来存储每个字母的出现次数
    freq = {}

    # 遍历字符串中的每个字符
    for char in string:

        # 如果字符是字母,则将其添加到字典中
        if char.isalpha():
            if char not in freq:
                freq[char] = 1
            else:
                freq[char] += 1

    # 计算每个字母的频率
    total_chars = sum(freq.values())
    for char in freq:
        freq[char] = freq[char] / total_chars

    # 将字典按照频率从大到小排序并返回
    return {k: v for k, v in sorted(freq.items(), key=lambda item: item[1], reverse=True)}

该函数通过遍历字符串中的每个字符来计算每个字母的出现次数,并将其存储在一个字典中。然后,它计算每个字母的频率,并将字典按照频率从大到小排序。最后,该函数返回一个包含每个字母及其出现次数的频率的字典。

以下是一个示例,说明如何使用该函数:

string = "hello world"
freq = letter_frequency(string)
print(freq)

输出:

{'l': 0.3, 'o': 0.2, 'e': 0.1, 'h': 0.1, 'w': 0.1, 'r': 0.1, 'd': 0.1}

该输出表示在字符串中,字母“l”占用了30%的频率,字母“o”占用了20%的频率,依此类推。