Python中文
首页
教程
问答
标签
搜索
登录
注册
文件解析问题
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个关于家庭作业问题的问题。问题是: 编写一个程序来读取一个名为输入.txt其中包含任意数量行的形式“,”然后使用字典记录此信息,最后向屏幕输出文件中表示的国家列表和包含的城市数。在</p> <p>例如,如果输入.txt包含以下内容:</p> <p>美国纽约<br/> 法国昂热<br/> 美国洛杉矶<br/> 法国保罗<br/> 法国敦刻尔克<br/> 麦加,沙特阿拉伯</p> <p>程序将输出以下内容(按某种顺序):</p> <p>沙特阿拉伯:1<br/> 美国:2<br/> 法国:3</p> <p>这是我的代码:</p> <pre><code>def addword(w,wcDict): if w in wcDict: wcDict[w] +=1 else: wcDict[w]= 1 import string def processLine(line, wcDict): wordlist= line.strip().split(",") for word in wordlist: word= word.lower().strip() word=word.strip(string.punctuation) addword(wordlist[1], wcDict) def prettyprint(wcDict): valkeylist= [(val,key) for key,val in wcDict.items()] valkeylist.sort(reverse = True) for val,key in valkeylist: print '%-12s %3d'%(key,val) def main(): wcDict={} fobj= open('prob1.txt','r') for line in fobj: processLine(line, wcDict) prettyprint (wcDict) main() </code></pre> <p>我的代码对每个国家计数两次。你能帮帮我吗?在</p> <p>谢谢你</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>在<code>processLine</code>函数中,有一个无关的for循环。<code>wordlist</code>将始终包含两个条目,城市和国家。因此for循环中的代码(包括<code>addword</code>)将被执行两次,您只需完全删除<code>for</code>语句,它就可以正常工作了。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
1 回答
如何在乒乓球游戏中阻止球
8 回答
如何在乘法和模中不乘空间?
2 回答
如何在乘法和除以2个不同的数字之间进行交换?
7 回答
如何在也是数据一部分的单个字符上拆分大字符串
10 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
8 回答
如何在事件wxWidgets中传递自定义数据
6 回答
如何在事件中使用lambda i=i?
8 回答
如何在事件中心只接收最近的数据
7 回答
如何在事件发生之前保持云函数运行?
9 回答
如何在事件发生后使页面重定向到同一页面
5 回答
如何在事件回调之间保持python生成器的状态
6 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
10 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
7 回答
如何在事件处理程序中访问外部对象?
9 回答
如何在事件循环中将协程打包为正常函数?
4 回答
如何在事件循环之外运行协同程序?
2 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
10 回答
如何在事件文件中只保留一份摘要?
7 回答
如何在事件模板中添加事件
10 回答