[英]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.