看板 Python 關於我們 聯絡資訊
最近在嘗試複習演算法 剛好在重演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 以上,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.218.129.60 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1503487464.A.977.html
stucode: tmp跟l參考到同一個list變數實體 所以會print一樣東西 08/23 23:45
stucode: 如果要觀察變化 要複製一份修改前變數 tmp = l.copy() 08/23 23:45
stucode: 在迴圈中修改容器內容可能會使iterator失效 08/23 23:47
stucode: 但你是用index方式 理論上不會有問題 08/23 23:47