版权声明: https://blog.csdn.net/lyw_321/article/details/79793598
题目内容:
对于一个已分词的句子(可方便地扩展到统计文件中的词频):
我/是/一个/测试/句子/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/重要/事情/说/三遍/!
可以用collections模块中的Counter()函数方便地统计词频,例如可用如下代码:
import collections
s = "我/是/一个/测试/句子/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/重要/事情/说/三遍/!/"
s_list = s.split('/')
[s_list.remove(item) for item in s_list if item in ',。!”“']
collections.Counter(s_list)
这个问题也可以通过字典来解决,请编写用字典解决本问题的程序,为便于OJ系统自动判断,程序最后输出字符串中包含的不同词的个数。
程序参考框架
def countfeq(s):
... ...
return a dict
if __name__ == "__main__":
s = input()
... ...
s_dict = countfeq(s)
print(len(s_dict.keys()))
输入格式:
字符串
输出格式:
整数
输入样例(因为oj系统限制,测试用例设为判断英文单词个数,请注意英文标点,假设仅包含,和.):
Spring/is/coming/./Spring/is/coming/.
输出样例:
3
时间限制:500ms内存限制:32000kb
def countfeq(s):
list=s.split('/')
[list.remove(item) for item in list if item in ', . ) :']
dict={}
for i in list:
if i in dict:
dict[i]+=1
else:
dict[i]=1
return dict
if __name__ == "__main__":
s = input()
s_dict = countfeq(s)
print(len(s_dict.keys()))