用python编写程序定义一个函数count_str(),统计给定的字符串中各个单词出现的次数,(单词之间以空格分隔)并按照单词出现的次数降序排序,返回一个排好序的列表。在主程序中调用该函数,并输出排序结果。
时间: 2023-09-12 09:05:07 浏览: 245
Python实现统计单词出现的个数
### 回答1:
可以使用Python内置的字典来实现单词出现次数的统计,然后使用sorted函数对字典进行排序,最后返回排序结果。以下是一个示例代码:
```python
def count_str(s):
# 将字符串按照空格分割成单词列表
words = s.split()
# 使用字典统计每个单词出现的次数
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
# 使用sorted函数对字典按照值(即单词出现次数)进行降序排序
sorted_word_count = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
# 将排序结果转换成列表返回
return sorted_word_count
# 测试
s = "hello world hello python world"
sorted_word_count = count_str(s)
print(sorted_word_count)
```
输出结果为:
```
[('hello', 2), ('world', 2), ('python', 1)]
```
可以看到,函数返回了一个按照单词出现次数降序排序的列表。其中每个元素是一个二元组,第一个元素是单词,第二个元素是出现次数。
### 回答2:
可以按照以下方式编写函数count_str(),实现统计单词出现次数并按出现次数降序排序的功能:
```python
def count_str(s):
# 将字符串按照空格分隔成单词列表
words = s.split(' ')
# 使用字典记录每个单词出现的次数
word_count = {}
# 统计每个单词出现的次数
for word in words:
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1
# 按出现次数降序排序
sorted_words = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
return sorted_words
# 在主程序中调用函数
s = "apple banana apple cherry cherry apple"
result = count_str(s)
print(result)
```
运行以上代码,会输出:`[('apple', 3), ('cherry', 2), ('banana', 1)]` 表示apple出现3次,cherry出现2次,banana出现1次,按出现次数降序排序。
### 回答3:
可以使用Python的字典(dict)数据类型来统计单词出现的次数。具体实现如下:
```python
def count_str(string):
# 创建一个空字典用来存储单词出现的次数
word_count = {}
# 将输入的字符串按空格划分成单词,并统计单词出现的次数
words = string.split()
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
# 按照单词出现的次数降序排序
sorted_words = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
# 返回排序结果
return sorted_words
# 调用函数并输出排序结果
input_string = "apple banana apple cherry cherry banana"
sorted_words = count_str(input_string)
print(sorted_words)
```
上述代码中,我们首先定义了一个函数`count_str`,接收一个字符串作为参数。然后我们创建一个空字典`word_count`,用来存储单词出现的次数。我们使用`split()`方法将输入的字符串按照空格划分成单词,并通过for循环遍历每个单词。如果单词已经在字典`word_count`中,我们将对应的值增加1;如果单词不在字典中,我们将其添加到字典中并设置初始值为1。
接下来,我们使用`sorted()`函数对字典`word_count`的键值对进行排序。在`sorted()`函数中,我们使用了`items()`方法将字典转换为可迭代的键值对对象,并使用`lambda`函数作为排序的依据,以每个键值对的值(即单词出现的次数)作为排序的依据。最后,我们将排序结果返回。
在主程序中,我们定义了一个字符串`input_string`作为输入,并调用`count_str`函数将排序结果保存到变量`sorted_words`中,并输出排序结果。根据上述示例,给定字符串"apple banana apple cherry cherry banana",输出结果为`[('cherry', 2), ('apple', 2), ('banana', 2)]`。
阅读全文