CS1 のプロジェクトに取り組んでおり、もうすぐクラックされますが、コードのこの部分は私を困惑させました! このプロジェクトの目的は、何千もの名前を含むファイルを参照して、特定の年の上位 20 名のリストを作成することです。各ファイルの各行には、名前、性別、発生回数が含まれています。このファイルは性別で区切られています (つまり、出現順に女性の名前が続き、その後に出現順に男性の名前が続きます)。各エントリがリスト内のクラスに含まれるポイントまでコードを取得しました (したがって、このリストはメモリ エントリの長いリストです)。これが私がこの時点まで持っているコードです。
class entry():
__slots__ = ('name' , 'sex' , 'occ')
def mkEntry( name, sex, occ ):
dat = entry()
dat.name = name
dat.sex = sex
dat.occ = occ
return dat
##test = mkEntry('Mary', 'F', '7065')
##print(test.name, test.sex, test.occ)
def readFile(fileName):
fullset = []
for line in open(fileName):
val = line.split(",")
sett = mkEntry(val[0] , val[1] , int(val[2]))
fullset.append(sett)
return fullset
fullset = readFile("names/yob1880.txt")
print(fullset)
この時点で私ができるかどうか疑問に思っているのは、sort() または他の関数を使用してこのリストを並べ替えることができるかどうかですが、リストをそれらの出現 (各エントリの dat.occ) で並べ替えることができるので、最終的には次のようになります。性別に関係なくソートされたリストで、その時点でリストの最初のエントリを印刷できます。このようにリストを並べ替えることはできますか?