簡體   English   中英

Python:創建客戶排序方法並在列表排序之前停止循環

[英]Python: creating customer sort method & loop stops before list sorted

我正在嘗試創建一個自定義排序方法,在該方法中,我采用了一個未按數字順序排列的列表,並將該列表按從最低到最高的順序排列。

該程序應采用以下列表...

arr = [1, 2, 3, 1, 4]

*並按以下方式打印 ... *

arr = [1, 1, 2, 3, 4]

就目前而言,我的代碼顯示為...

def sort(list):
for i in range(1, len(list)):
    if list[i] < list[i - 1]:
        temp = list[i - 1]
        list[i - 1] = list[i]
        list[i] = temp
        print arr       
sort(arr)

我的輸出是這個...

[1, 2, 1, 3, 4]

似乎函數一次在列表中運行一次,對數字重新排序一次,然后在它們全部按數字順序停下來。 我如何使它遍歷列表,將所有數字放在應有的位置?

你為什么不只是:

def sort_list(my_list):
    print sorted(my_list)


def main():
    arr = [1, 3, 2, 5, 4]
    sort_list(arr)

if __name__ == "__main__":
    main()

這將具有以下輸出:

[1, 2, 3, 4, 5]

如果您不想使用內置函數,請執行以下操作:

def sort_list(new_list):
    data_list = [1, 3, 2, 5, 4]

    while data_list:
        minimum = data_list[0]  # arbitrary number in list
        for x in data_list:
            if x < minimum:
                minimum = x
        new_list.append(minimum)
        data_list.remove(minimum)

    print new_list


def main():
    new_list = []
    sort_list(new_list)

if __name__ == "__main__":
    main()

這將具有相同的輸出:

[1, 2, 3, 4, 5]

暫無
暫無

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

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