簡體   English   中英

Python中的自定義排序方法沒有正確排序列表

[英]Custom sort method in Python is not sorting list properly

我是計算機類的學生,我們必須編寫一個包含文件處理和排序的程序。 我已完成文件處理並寫出了我的排序(這是一種簡單的排序),但它沒有對列表進行排序。 我的代碼是這樣的:

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 ()因為我們必須編寫自己的排序函數。 有什么我做錯了嗎?

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來交換值)

因為它改變了實際的數組值,你實際上甚至不需要返回

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM