如何在python中的文件中按升序对数字进行排序(通过插入排序)

时间:2016-04-18 16:13:37

标签: python-2.7 sorting insertion-sort data-files

我试图找出一种使用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 :(得分: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))