2016-04-18 16 views
0

Ich versuche, eine einfache Möglichkeit zum Sortieren von Zahlen in aufsteigender Reihenfolge aus einer Datei mit Python herauszufinden.So sortieren Sie Zahlen in aufsteigender Reihenfolge in einer Datei in Python (durch Einfügen sortieren)

Das ist, was ich bis jetzt habe - aber es scheint nicht zu funktionieren!

input_file = open('C:\\Users|\Desktop\\data.txt') 
for line in input_file: 
    print line 

print('Before: ', input_file) 
insertion_sort(input_file) 
print('After : ', input_file) 
def insertion_sort(items): 
    """ Implementation of insertion sort """ 
    for i in range(1, len(items)): 
     j = i 
     while j > 0 and items[j] < items[j-1]: 
      items[j], items[j-1] = items[j-1], items[j] 
      j -= 1 

Jede Hilfe würde sehr geschätzt werden !!

+1

Was genau nicht funktioniert? Ich kann bereits zwei Fehler sehen, die dazu führen würden, dass dieses Skript nicht funktioniert –

Antwort

0

Sie nur ein paar Grammatikfehler haben:

  • Sie die insertion_sort Funktion erklären sollten, bevor sie verwenden
  • Sie kein File Typ drucken können, sollten Sie einen List machen den Inhalt der Datei zu lesen, dann sortieren die List, kehren die List und drucken Sie die List
  • Ihre Dateinamen vielleicht falsch, verwenden / ist besser in Windows

Versuchen Sie folgendes:

input_file = open('C:/Users/Desktop/data.txt') 

lst = [] 
for line in input_file: 
    lst.append(int(line.strip())) 

def insertion_sort(items): 
    """ Implementation of insertion sort """ 
    for i in range(1, len(items)): 
     j = i 
     while j > 0 and items[j] < items[j - 1]: 
      items[j], items[j - 1] = items[j - 1], items[j] 
      j -= 1 
    return items 

print('Before: ', lst) 
print('After : ', insertion_sort(lst)) 
+0

Willkommen bei Stackoverflow! Wenn Sie eine Antwort geben, ist es vorzuziehen, [eine Erklärung dafür zu geben, WARUM Ihre Antwort] (http://stackoverflow.com/help/how-to-answer) die eine ist. Code-only-Antwort kann am Ende gelöscht werden. –