我是计算机类的学生,我们必须编写一个包含文件处理和排序的程序。我已完成文件处理并写出了我的排序(这是一种简单的排序),但它没有对列表进行排序。我的代码是这样的:
namelist = []
scorelist = []
hs = open("hst.txt", "r")
namelist = hs.read().splitlines()
hss = open("hstscore.txt","r")
for line in hss:
scorelist.append(int(line))
scorelength = len(scorelist)
for i in range(scorelength):
for j in range(scorelength + 1):
if scorelist[i] > scorelist[j]:
temp = scorelist[i]
scorelist[i] = scorelist[j]
scorelist[j] = temp
return scorelist
我已经很长时间没有使用Python了,所以我知道代码可能效率不高但是我真的不想使用完全不同的方法对它进行排序而且我们不允许使用.sort()或.sorted()因为我们必须编写自己的排序函数。有什么我做错了吗?
答案 0 :(得分:2)
def super_simple_sort(my_list):
switched = True
while switched:
switched = False
for i in range(len(my_list)-1):
if my_list[i] > my_list[i+1]:
my_list[i],my_list[i+1] = my_list[i+1],my_list[i]
switched = True
super_simple_sort(some_list)
print some_list
是一个非常简单的排序实现...这对你来说是公平的,但是利用了一些东西来加速它(我们只需要一个for循环,只要列表出现故障我们只需要重复,python也不需要temp var来交换值)
因为它改变了实际的数组值,你实际上甚至不需要返回