def insertionSort(a):
for i in range(1, len(a)): #outer loop covering the range
value = a[i] #value = to list, which will compare items to the left
i = i - 1 #i goes lower than index to compare further to the left
while i >= 0 : #keep comparing till its at the beginning of the list
if value < a[i]: #if value is less than i
a[i+1] = a[i] # shift number in right i to slot i + 1
a[i] = value # shift value that was left into slot i
i = i - 1
else:
break
infile = open("file1.txt", "r")
a=[]
for aline in infile:
a = aline.split()
insertionSort(a)
print(a)
Dies ist, was in der Datei ist:Eine Liste aus einer Datei lesen?
7686850495948548545
Wie erhalte ich die insertionSort()
Funktion auf einer Datei zu arbeiten?
Enthält die Datei alle Zahlen in einer Zeile? – trans1st0r
Wenn Sie 'a = aline.split()' tun, wird keine Referenz außerhalb der Variablen 'a' gehalten, so dass die nächste Iteration in der for-Schleife diese mit der nächsten Zeile überschreibt, so dass Sie nur die Sortierung aufrufen auf ** die letzte Zeile der Datei. ** –
Wenn Sie stattdessen 'a.extend (aline.split())' hätten, würden Sie die Liste um alle Wörter (oder Zahlen) in dieser Zeile erweitern und mit allen enden von ihnen nach der for-Schleife. –