[問題] swapping elements of list in forloop

作者: dazmin (剌糾CHANG)   2017-08-23 19:24:22
最近在嘗試複習演算法
剛好在重演SelectionSort觀念的時候遇到了點狀況
Code:
http://imgur.com/4R5XSiA
Run:
http://imgur.com/3l33eFP
原以為是程式碼寫錯,而無法進行排序交換
稍微改成:
僅把兩值存於新的變數再進行交換
Code:
http://imgur.com/a/vEWut
Run:
http://imgur.com/U0YrdQZ
雖然成功進行了排序,但其主要是要看到每次迴圈所造成的變換順序
想請問該如何實現,每次交換皆成功print出來
另外在StackOverflow上查到一篇與此篇類似的文章,
卻不了解為什麼在迴圈中進行數值交換不是個好點子
https://goo.gl/TNVuBN
以上,謝謝
作者: stucode   2017-08-23 23:45:00
tmp跟l參考到同一個list變數實體 所以會print一樣東西如果要觀察變化 要複製一份修改前變數 tmp = l.copy()在迴圈中修改容器內容可能會使iterator失效但你是用index方式 理論上不會有問題

Links booklink

Contact Us: admin [ a t ] ucptt.com