- 老师答疑区
- 帖子详情
老师参与
‘字典相关编程题--统计句子中的词频次数’的疑问
周文扬
发表于2018年04月08日
<p><strong>老师,这个题目没有要求统计出某个词出现次数多少,只需要知道共有多少个词,感觉用列表更简洁?</strong></p><p>另外,‘原先的方式由于一边遍历一边remove可能会引起可迭代对象出问题’,这题答案15是错误的,应该是14?</p><p>是否,请老师解答。</p><p><strong><br ></strong></p><p><strong>用列表:</strong></p><p><code class="brush:python;toolbar:false" >def countfeq(s):
s_list = s.split('/')
s_list_copy = s_list.copy()
[s_list.remove(i) for i in s_list_copy if i in ',。! ”“,.!"']
return len( set(s_list) )
if __name__ == "__main__":
s = input()
s_dict = countfeq(s)
print(countfeq(s))</code><strong>用字典:</strong></p><p><code class="brush:python;toolbar:false" >def countfeq(s):
s_list = s.split('/')
s_list_copy = s_list.copy()
[s_list.remove(i) for i in s_list_copy if i in ',。! ”“,.!"']
a_list=list(set(s_list))
count=[s_list.count(i) for i in a_list]
aDict=dict(zip(a_list,count))
return aDict
if __name__ == "__main__":
s = input()
s_dict = countfeq(s)
print(len(s_dict.keys()))</code></p><p><strong><br ></strong></p><p><strong>题目:</strong></p><p>“</p><p>统计句子中的词频次数(3分)</p><p>题目内容:</p><p><br ></p><p>对于一个已分词的句子(可方便地扩展到统计文件中的词频):</p><p>我/是/一个/测试/句子/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/重要/事情/说/三遍/!</p><p>可以用collections模块中的Counter()函数方便地统计词频,例如可用如下代码:</p><p><br ></p><p>import collections</p><p>s = "我/是/一个/测试/句子/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/重要/事情/说/三遍/!/"</p><p>s_list = s.split('/') </p><p>[s_list.remove(item) for item in s_list if item in ',。!”“']</p><p>collections.Counter(s_list)</p><p>这个问题也可以通过字典来解决,请编写用字典解决本问题的程序,为便于OJ系统自动判断,程序最后输出字符串中包含的不同词的个数。</p><p><br ></p><p>程序参考框架</p><p><br ></p><p>def countfeq(s):</p><p> ... ...</p><p> return a dict</p><p>if __name__ == "__main__":</p><p> s = input()</p><p> ... ...</p><p> s_dict = countfeq(s)</p><p> print(len(s_dict.keys()))</p><p><br ></p><p>输入格式:<br ></p><p>字符串</p><p><br ></p><p>输出格式:<br ></p><p>整数</p><p>”</p><p><br ></p><p><br ></p><p><br ></p>
3
回复