ich habe ein Problem mit der Performanz, wenn ich mittels einer for-Schleife eine Liste alphabetisch bzw. zufällig sortieren möchte. Die Schwierigkeit ist, dass immer 5 Elemente der Liste zusammengehören und dadurch auch zusammen verschoben werden müssen. Und eben das dauert ewig. Wie kann ich da die Geschwindigkeit erhöhen? Geht das evtl. mittels list comprehension oder map()? Hier mal der bisherige Code:
Code: Alles auswählen
for i in range(len(vokabeln)) : #Vokabeln in zufälliger Reihenfolge sortieren
index = randint(0, (len(vokabeln)/5)-5)
index = index*5
vokabeln = vokabeln [ 0 : index] + vokabeln [ index+5 : ] + vokabeln [ index : index+5]
vokabeln_random = vokabeln[:]
vertauscht = 1 #Vokabeln in alphabetischer Reihenfolge - 1. Sprache sortieren
while vertauscht:
vertauscht = 0
for index in range(0,len(vokabeln)-6,5) :
cmp_val = locale.strcoll(lower(vokabeln [index]),lower(vokabeln [index+5]))
if cmp_val == 1:
vokabeln = vokabeln [ 0 : index] + vokabeln [ index+5 : ] + vokabeln [ index : index+5]
vertauscht = 1
vokabeln_sorted1 = vokabeln[:]
