文章目录
前言
这是一篇学习第三期书生大模型实战营的记录。
TASK一、Python实现wordcount
请实现一个wordcount函数,统计英文字符串中每个单词出现的次数。返回一个字典,key为单词,value为对应单词出现的次数。
Eg:
Input:
"""Hello world!
This is an example.
Word count is fun.
Is it fun to count words?
Yes, it is fun!"""
Output:
{'hello': 1, 'world': 1, 'this': 1, 'is': 4, 'an': 1, 'example': 1, 'word': 1, 'count': 2,
'fun': 3, 'it': 2, 'to': 1, 'words': 1, 'yes': 1}
解答如下(大小写转换,多余空格替换,正则匹配非字母来分割,再遍历words做统计:
import re
def wordcount(text):
# 将文本转换为小写,以便统计时不区分大小写
text = text.lower()
# 用空格替换掉文本中的换行符,确保单词之间只有一个空格分隔
text = text.replace('\n', ' ')
# 使用非字母数字字符作为分隔符来分割单词
words = re.split(r'[^a-z0-9]+', text)
# 创建一个字典来存储单词计数
word_count = {}
# 遍历单词列表,统计每个单词的出现次数
for word in words:
if word: # 确保单词不为空
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
return word_count
# 测试函数
text = """
Hello world!
This is an example.
Word count is fun.
Is it fun to count words?
Yes, it is fun!
"""
print(wordcount(text))
TASK二、使用本地vscode连接远程开发机,将上面你写的wordcount函数在开发机上进行debug,体验debug的全流程,并完成一份debug笔记(需要截图)。
1.启动vscode远程debug:
2.将正则匹配修改为
r'[^a-z0-9]'
进行断点debug:可以得到最后结果一样,相对于由+号这个结果没有变化,但是分割过程可能多了几个空格。