python写:统计短信单词个数。题目描述:收到一条英文短信(短信内容的标点符号只有,.?!),请统计短信所有单词才显得成熟(单词统计不区分大小写,以小写统计)以字典格式返回(key为单词,value为出现次数)。
时间: 2024-09-14 07:09:17 浏览: 47
你可以使用Python的内置模块`re`(正则表达式)来处理这个问题。下面是一个简单的步骤来实现这个功能:
```python
import re
def count_words(sms):
# 将短信转换为小写并移除非字母字符
sms = re.sub(r'[^\w\s]', '', sms.lower())
# 使用正则表达式匹配单词并将它们分割成列表
words = re.findall(r'\b\w+\b', sms)
# 创建一个空字典来存储单词及其计数
word_count = {}
# 遍历单词列表,并更新字典中的计数
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
return word_count
# 示例短信
sms = "Hello, how are you? I'm fine, thank you."
result = count_words(sms)
print(result) # 输出:{'hello': 1, 'how': 1, 'are': 1, 'you': 1, 'i': 1, 'm': 1, 'fine': 1, 'thank': 1, 'you': 1}
```
在这个函数中,我们首先将短信转换为小写,并使用正则表达式去除所有的标点符号。然后通过`\b\w+\b`找出所有的单词,最后遍历这些单词并统计它们在短信中出现的次数。