想對資料進行排序,但不想動到原資料,故使用新資料=原資料方式,創造新資料出來,進行排序,最後查看的結果原資料也跟著修改。
上網查查相關資料,原來Python同個陣列存在記憶體位址相同,可使用[:]重新設定index值,或list型態。
如:Data[3,2,1]
New_Data=Data[:]
New_Data=list(Data)
參考:https://skylinelimit.blogspot.com/2018/04/python-variable-reference.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | def Bubble_Sort(Sort): for i in range(len(Sort)-1): for j in range(0,len(Sort)-1-i): if Sort[j] > Sort[j+1]: temp=Sort[j] Sort[j]=Sort[j+1] Sort[j+1]=temp return Sort
Number=[3,2,1] Number_Sort=Number Number_Copy=Number[:]
print('same copy after sort:',Bubble_Sort(Number_Sort)) print('before sort:',Number) print('\n') print('index copy after sort:',Bubble_Sort(Number_Copy)) print('before sort:',Number) |
結果:
沒有留言:
張貼留言