代入元のリストがソートされる
リストを用いてバブルソートを行おうと思ったのですが、関数へ代入しただけの元のリストまでソートされてしまいます。liはグローバル変数なので変わらないと思ったのですが...
原因がわかる方がいらっしゃったら教えてください。
問題のソースコード
Python
1#数列をリストとして定義 2li = [5, 3, 6, 1, 4, 2] 3#バブルソート関数を定義 4def sort(l): 5 num = l 6 for i in range(len(num)-1): 7 for j in range(len(num)-1): 8 if num[j]>num[j+1]: 9 num[j], num[j+1]=num[j+1], num[j] 10 print(num) 11#リストliを関数sort()に渡す 12sort(li) 13#もとのリストliを表示する(ここが問題) 14print(li)
Result
1#sort(li) 2[1, 2, 3, 4, 5, 6] 3#print(li) 4[1, 2, 3, 4, 5, 6]
試したこと
sort(li)を実行する前にprint(li)を実行したところソートされていない元のリストが出力されました。
動作環境
Pyhton3.7.3
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/20 15:47
2019/09/20 15:51
2019/09/20 16:02