2021年11月20日 星期六

Python-Copy陣列連動問題

 想對資料進行排序,但不想動到原資料,故使用新資料=原資料方式,創造新資料出來,進行排序,最後查看的結果原資料也跟著修改。

上網查查相關資料,原來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)


結果:

    



沒有留言:

張貼留言

Ubuntu-Journalctl查看系統日誌

 近期所使用Ubuntu系統24小時開著,進行跑Python程式使用,但跑個2~3天,排程就無法正常寄信,SSH連線也無法正常連線,經查看後為wifi連線問題,暫先使用腳本排程進行重開wifi。 以下為記錄Journalctl指令。 使用Journalctl來從系統日誌上查看看問...