ich hätte wieder mal eine Frage an die Experten.
Ich habe in meinem fertigen Programm eine Funktion, welche mir aus einer sortierten Liste
die Platzziffern hinzufügt und zwar so das bei gleicher Punkteanzahl die gleicher Platzziffer bleibt und der nächste Platz
überspringen wird. Meine Lösung funktioniert tadellos, es würde mich aber interessieren, ob es eine bessere Lösung dafür gibt?
Ich habe mich mit enumerate und mit generatoren ein wenig eingelesen, um ev. mit einer Schleife auszukommen aber es ist nichts dabei rausgekommen.
Gruß Gerhardus.
Code: Alles auswählen
def platz(ra_liste):
for i in range(len(ra_liste)):
ra_liste[i].insert(0,i+1)
last_rang=ra_liste[0][0]
last_cp=ra_liste[0][2]
for i in range(len(ra_liste)):
if ra_liste[i][2]==last_cp:
ra_liste[i][0]=last_rang
last_rang=ra_liste[i][0]
last_cp=ra_liste[i][2]
return ra_liste
if __name__ == '__main__':
ra_liste=['Maier Susi', 973, 'A'], ['Mustermann Max', 600, 'B'],\
['Knoll Markus', 600, 'B'], ['Müller Thomas', 600, 1411],\
['Schmidt Hilde', 301,'A'], ['Messi Max',500,'C']
new_li=platz(ra_liste)
for i in new_li: print(i)