【发布时间】:2016-02-27 12:59:41
【问题描述】:
我是 Python 新手,正在努力对文件中的数字进行排序。我想做一个冒泡或插入排序,并按升序排列文件中的数字。数字不是整数。这是我目前所拥有的:
input_file=open("C:\\Users\\Rachel\\Documents\\Natural Sciences MSci\\Year 2\\Env Sci\\Comp Modelling\\Pptn data.txt", "r")
header_line = input_file.readline()
for line in input_file:
print line
list=input_file.read()
print list
def insertion_sort(items):
for i in range(1, len(items)):
j=i
while j>0 and items[j] < items[j-1]:
temp=items[j]
items[j]=items[j-1]
items[j-1]=temp
j=j-1
insertion_sort(list)
print 'After sorting:', list
在我运行这个之后,未排序的列表被打印出来并且短语After sorting:appears 但没有数字的排序列表:D
我确定我遗漏了一些明显的东西,但我尝试了很多不同的方法,但似乎无法得到它。
任何帮助都会很棒 谢谢!
【问题讨论】:
-
另请注意,您可能希望使用 file.readlines() 而不是 file.read() 将文件的行读入列表。
-
我认为您将不得不拆分
while j>0 and items[j] < items[j-1]:。如果不满足第二个条件,这是很正常的情况,你不会进入循环,所以 j 不会被递减。