Lorsque j'imprime ma liste des vingt occurrences les plus importantes, tout ce que j'obtiens est l'emplacement de l'objet et non les données réelles dont j'ai besoin. Aussi, si vous avez des idées d'amélioration, cela serait grandement apprécié. S'il vous plaît aider. Merci.Emplacements des objets avec des classes (Python)
Voici mon code.
class topList():
__slots__ = ("name", "gender", "occurences")
def mkList(name, gender, occurences):
find = topList()
find.name = name
find.gender = gender
find.occurences = occurences
return find
def main():
year = input('Enter year: ')
file = open('yob' + year + '.txt')
lst = []
femaleLst = []
maleLst = []
for line in file:
line = line.strip().split(",")
names = mkList(line[0], line[1], line[2])
lst.append(names)
if names.gender == 'F':
femaleLst += [ line ]
else:
maleLst += [ line ]
while len(lst) < 20:
male = maleLst.pop()
female = femaleLst.pop()
if maleLst.occurences > femaleLst.occurences:
lst += [ male ]
else:
lst += [ female ]
print(lst[ : 20])
main()
Merci pour votre aide, mais si cela ne vous dérange pas pourriez-vous me dire comment faire pour que mon truc .pop se passe? Mon programme ne fera pas ressortir les valeurs que je veux à la place, il va simplement tout imprimer. –
@Underdog_Nate: Vous avez plus de 20 éléments dans 'lst' * déjà *; vous ajoutez toutes les entrées à 'lst', donc le test' len (lst) <20' n'est jamais vrai. –