2016-04-18 5 views
0

Я пытаюсь выяснить простой способ сортировки чисел в порядке возрастания из файла с помощью python.Как сортировать числа в порядке возрастания в файле в python (путем сортировки вставки)

Это то, что у меня есть до сих пор, но оно, похоже, не работает!

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 

Любая помощь была бы принята с благодарностью!

+1

Что именно не работает? Я уже вижу две ошибки, которые могут привести к тому, что этот скрипт не будет работать. –

ответ

0

Вы просто некоторые грамматические ошибки:

  • вы должны объявить функцию insertion_sort перед использованием его
  • вы не можете распечатать File типа, вы должны сделать List, чтобы прочитать содержимое файла, затем сортировать List, вернуть List и распечатать List
  • ваше имя файла может быть неправильно, используйте / лучше в Windows,

Попробуйте это:

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

Добро пожаловать в Stackoverflow! Когда вы даете ответ, предпочтительнее дать [какое-то объяснение в отношении ПОЧЕМУ ваш ответ] (http://stackoverflow.com/help/how-to-answer). Только ответ кода может быть удален. –

 Смежные вопросы

  • Нет связанных вопросов^_^