Python中的自定义排序方法不能正确排序列表

2024-09-25 16:28:20 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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


Tags: 文件代码intxtfor排序linerange
1条回答
网友
1楼 · 发布于 2024-09-25 16:28:20
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 loop,只要列表有问题,我们只需要重复一次,而且python不需要一个temp变量来交换值)

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

相关问题 更多 >