作者dazmin (剌糾CHANG)
看板Python
標題[問題] swapping elements of list in forloop
時間Wed Aug 23 19:24:22 2017
最近在嘗試複習演算法
剛好在重演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