好的,所以我正在尝试找出一种方法来打印给定年份的前 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 文件名及其目录的情况下提示年份,这是我尝试过的:
def main():
year = input('Enter Year: ')
for line in open('names/yob',str(year),'.txt'):
print(line)
我不明白为什么这不起作用。我也认为我需要制作一个类似这样的课程和一种输入方式:
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 名。我猜你使用列表,但我怎么能这样做呢?所有帮助将不胜感激。
编辑:
好吧,我已经开发了代码,但是如果 mlst.rank > flst.rank: 你能告诉我我做错了什么吗?