好吧,所以我想找出一种方法,打印出某一年前20个宝宝的名字。我有超过200个文本文件,每一个名字,有多少次出现的名称。他们是按性别划分的这就是一个例子
year 1992:
Ashley,F,38451
Jessica,F,38349
Amanda,F,25027
Brittany,F,24974
Sarah,F,24632
Samantha,F,24402
Emily,F,21831
Stephanie,F,19670
Elizabeth,F,19020
Megan,F,17843
...
Michael,M,54373
Christopher,M,42459
Matthew,M,37729
Joshua,M,36207
Andrew,M,30530
Brandon,M,29618
Daniel,M,29138
Tyler,M,28792
James,M,28502
我需要找到一种方法,把任何一年的排名前20名的名字,不分性别,在提示年份时打印出来。如果不输入完整的txt文件名及其目录,我也不知道如何提示年份。我尝试了:
^{pr2}$我不明白为什么这样不行。另外,我想我需要做一个这样的类和一个条目的方法:
class entry():
__slots__ = ('gender', 'rank')
def mkEntry(...):
...
它应该有这样的输出
Enter Year: 1992
1. Josh (M): 52013
2. Jessica (F): 51001
3. Michael (M): 48923
...
20. Sarah (F): 34013
我只是不明白如何把文件分成最高级别,不分性别,然后打印出前20名。我猜你用的是单子,但我怎么能做到呢?我们将非常感谢所有的帮助。在
编辑:
好吧,我已经开发了代码,但是有一个错误,一个列表不能有列的属性,如果军衔>;飞行等级你能告诉我我做错了什么吗?在
Martijn的回答说明了如何读入数据。但是,假设每个名字和性别在每个文件中只出现一次,就不需要计数器了。你可以用heapq.n最大. 这使它成为一行代码而不是三行代码,这意味着您一次只需要足够的内存来存储20个名称,而不是文件中的所有名称。
当我不在电话上的时候,我会用真实的测试代码来编辑这个,但是类似这样的东西:
打开文件时需要连接字符串,或使用字符串格式;
open()
的工作方式与print()
不同,它不会猜测应该连接哪些参数:接下来,您有CSV文件,所以使用
^{pr2}$csv
模块来读取它们:接下来,我将使用^{} 来跟踪名称计数:
现在你有了每个人的姓名和性别统计,并可以要求前20名:
相关问题 更多 >
编程相关推荐