Python中的自定义排序方法没有正确排序列表

时间:2014-02-20 17:21:09

标签: python list sorting

我是计算机类的学生,我们必须编写一个包含文件处理和排序的程序。我已完成文件处理并写出了我的排序(这是一种简单的排序),但它没有对列表进行排序。我的代码是这样的:

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()因为我们必须编写自己的排序函数。有什么我做错了吗?

1 个答案:

答案 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来交换值)

因为它改变了实际的数组值,你实际上甚至不需要返回