Dies ist der nächste Schritt in meinem currently unresolved question, in dem ich versuche, die Noten von 3 verschiedenen Teams zu sortieren. Ich habe sehr begrenzte Kenntnisse über Python, weil ich neu in der Programmierung bin, so dass meine Problemlösung dieses aktuellen Projekts ziemlich schwierig ist.Sortieren von Daten aus einem CSV alphabetisch, am höchsten zum niedrigsten und Durchschnitt
Um zu beginnen, brauche ich die Beispieldaten (siehe unten), die über zwei Zellen aufgeteilt sind, um alphabetisch nach den Namen sortiert zu werden, ich werde dies für 3 verschiedene Teams in 3 verschiedenen Dateien haben. Ich versuche auch, es vom höchsten zum niedrigsten zu sortieren, abhängig von der Punktzahl, das hat sich für mich bisher als sehr schwierig erwiesen.
Jake,5
Jake,3
Jake,7
Jeff,6
Jeff,4
Fred,5
Die dritte und letzte Art zu sortieren, die ich versuche zu tun ist durchschnittlich. Dafür hatte ich versucht, es so zu machen, wenn der Benutzer seinen Namen 2 oder 3 Mal hatte (da das Programm die letzten 3 Punkte für jeden Benutzer speichert, ist dies ein currently unresolved Problem), dann würde es ihre Punktzahlen hinzufügen und dann teilen wie viele von denen hatte es dort. Leider war das sehr schwierig für mich und ich hatte Mühe, eine Ausgabe zu bekommen, obwohl ich eine Idee hatte, dass dies ihre durchschnittlichen Ergebnisse in eine separate Datei drucken und dann die Ergebnisse erneut lesen würde.
admin_data = []
team_choice = input("Choose a team to sort")
if team_choice == 'Team 1':
path = 'team1scores.csv'
elif team_choice == 'Team 2':
path = 'team2scores.csv'
elif team_choice == 'Team 3':
path = 'team3scores.csv'
else:
print("--Error Defining File Path--")
print("As an admin you have access to sorting the data")
print("1 - Alpahbetical")
print("2 - Highest to Lowest")
print("3 - Average Score")
admin_int = int(input("Choose either 1, 2 or 3?"))
if sort_int == 1 and team_choice == 'Team 1':
do things
elif sort_int == 2 and team_choice == 'Team 1':
do things
elif sort_int == 3 and team_choice == 'Team 1':
do things
wird für jede Datei verwendet werden Dieser Teil des Programms, sondern für jede der verschiedenen Sortier Wege kein Glück produzieren keine Lösungen hatte ich:
Das aktuelle Layout Ich habe so weit unten brauchen. Ich werde auch schätzen, wenn die Antwort für die first part meines Projektes auch beantwortet wird.
EDIT (16.43): Ich habe es geschafft, die höchsten zum niedrigsten Teil des Programms zu vervollständigen, ist aber Druck:
[['Fred', '9'], ['George', '7'], ['Jake', '5'], ['Jake', '4'], ['Derek', '4'], ['Jake', '2']]
Also, wenn dies die Formatierung ich die Daten zu lesen ist wie, Wie kann ich die Datei für doppelte Namen lesen und die Ergebnisse hinzufügen, wenn sie in Arrays wie diesem sind?
Sortierung höchsten zum niedrigsten gelöst werden von [diese Antwort] (http://stackoverflow.com/questions/10695139/sort-a-list-of-tuples-by-2nd-item-integer-value) und wenden Sie "reverse = True" auf "so" sortiert dass es am höchsten zum niedrigsten geht. Was passiert, wenn der Benutzer den "Durchschnittswert" wählt, würde er den Durchschnitt berechnen oder sortieren? –
Es sollte die Datei lesen und wenn ein Name mehr als einmal dort ist, fügt er sie zusammen und dividiert durch die Anzahl von ihnen dort. Meine Idee danach war, die neuen Ergebnisse in eine andere Datei zu schreiben und dann von oben nach unten zu sortieren. Macht das viel Sinn? –