使用Python统计频率。定义一个 count _ num ()函数,统计给定的字符串中各单词的出现频率,并将结果保存在字典中返回。在主程序中,定义一段英文语句,如S1=" Python VB VFP C C ++ Java Python Java PythonC ",调用函数完成统计,并分别按照键和值的升序将返回的字典输出显示。
时间: 2024-02-22 13:56:34 浏览: 156
好的,我可以为您解答这个问题。以下是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]`,表示按照字典值(即出现次数)升序排列。
阅读全文