编写一个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%的频率,依此类推。
