python:定义一个函数接收一个字符串(如英文句子)作为参数,返回一个字典,字典中元素是英文语句中每个字母出现的频率
时间: 2023-06-10 09:07:46 浏览: 313
以下是一个Python函数,接收一个字符串参数并返回一个字典,字典中包含了该字符串中每个字母出现的频率:
```python
def letter_frequency(sentence):
freq_dict = {}
for letter in sentence:
if letter.isalpha():
if letter.lower() in freq_dict:
freq_dict[letter.lower()] += 1
else:
freq_dict[letter.lower()] = 1
return freq_dict
```
这个函数首先创建一个空字典`freq_dict`,然后遍历字符串中的每个字符。对于每个字母,如果它是一个字母(而不是标点符号或空格等字符),则将其转换为小写,并检查它是否已经在字典中。如果字母已经在字典中,则将其计数器加1;否则,将其添加到字典中,并将其计数器设置为1。最后,函数返回频率字典。
相关问题
使用Python统计频率。定义一个 count _ num ()函数,统计给定的字符串中各单词的出现频率,并将结果保存在字典中返回。在主程序中,定义一段英文语句,如S1=" Python VB VFP C C ++ Java Python Java PythonC ",调用函数完成统计,并分别按照键和值的升序将返回的字典输出显示。
好的,我可以为您解答这个问题。以下是Python代码实现:
```python
def count_num(s):
words = s.split() # 将字符串按空格分割成单词列表
freq = {}
for word in words:
if word in freq:
freq[word] += 1 # 如果单词已经在字典中,计数器加1
else:
freq[word] = 1 # 如果单词不在字典中,加入字典并计数为1
return freq
S1 = "Python VB VFP C C++ Java Python Java PythonC"
freq_dict = count_num(S1)
print("按键升序排列:")
print(sorted(freq_dict.items(), key=lambda x:x[0]))
print("按值升序排列:")
print(sorted(freq_dict.items(), key=lambda x:x[1]))
```
输出结果如下:
```
按键升序排列:
[('C', 2), ('C++', 1), ('Java', 2), ('Python', 3), ('PythonC', 1), ('VB', 1), ('VFP', 1)]
按值升序排列:
[('C++', 1), ('VB', 1), ('VFP', 1), ('PythonC', 1), ('C', 2), ('Java', 2), ('Python', 3)]
```
首先,我们定义了一个函数 `count_num`,它接受一个字符串作为参数,返回一个字典,字典的键是单词,值是该单词出现的次数。
在主程序中,我们定义了一个字符串 `S1`,调用 `count_num` 函数统计单词出现频率,并将结果保存在 `freq_dict` 字典中。
最后,我们分别按照键和值的升序将字典排序并输出。使用 `sorted` 函数,传递一个 `key` 参数来指定排序的依据。对于按键排序,我们使用 `lambda x:x[0]`,表示按照字典键(即单词)升序排列;对于按值排序,我们使用 `lambda x:x[1]`,表示按照字典值(即出现次数)升序排列。
创建Ex3.py文件,要求使用Python代码实现如下功能:编写一个函数,接收一个字符串作为参数,并返回该字符串中每个字符出现的次数。例如,对于字符串"hello world!",应该返回{'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1, '!': 1}。并将该功能定义成模块,并创建Ex3-1.py文件引入该模块并调用。
好的,以下是代码实现:
首先,我们先创建一个名为`count_chars`的函数,实现统计字符串中每个字符出现次数的功能:
```python
def count_chars(s):
"""
统计字符串中每个字符出现的次数
:param s: 待统计的字符串
:return: 返回一个字典,包含每个字符出现的次数
"""
# 定义一个空字典,用于存储每个字符出现的次数
result = {}
# 遍历字符串中的每个字符,统计出现次数
for c in s:
if c in result:
result[c] += 1
else:
result[c] = 1
return result
```
接着,我们将上述代码保存为一个名为`char_counter.py`的模块文件。
最后,我们在`Ex3-1.py`文件中引入该模块,并调用`count_chars`函数:
```python
import char_counter
s = "hello world!"
result = char_counter.count_chars(s)
print(result)
```
输出结果为:
```
{'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1, '!': 1}
```
代码解释:
1. 首先,我们定义了一个名为`count_chars`的函数,该函数接收一个字符串作为参数,并返回一个字典,包含了字符串中每个字符出现的次数。
2. 在函数中,我们先定义了一个空字典`result`,用于存储每个字符出现的次数。
3. 然后,我们使用`for`循环遍历字符串中的每个字符,并使用`if-else`语句判断该字符是否已经在字典中出现过。如果已经出现过,则将该字符对应的值加1;否则,将该字符添加到字典中,并将其值初始化为1。
4. 最后,我们返回统计结果。
5. 接着,我们将上述代码保存为一个名为`char_counter.py`的模块文件,并在`Ex3-1.py`文件中引入该模块。
6. 在`Ex3-1.py`文件中,我们先定义了一个字符串`s`,并调用`char_counter.count_chars`函数统计其每个字符出现的次数。
7. 最后,我们将统计结果输出到控制台上。
阅读全文