作者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://webptt.com/cn.aspx?n=bbs/Python/M.1503487464.A.977.html
1F:→ stucode: tmp跟l参考到同一个list变数实体 所以会print一样东西 08/23 23:45
2F:→ stucode: 如果要观察变化 要复制一份修改前变数 tmp = l.copy() 08/23 23:45
3F:→ stucode: 在回圈中修改容器内容可能会使iterator失效 08/23 23:47
4F:→ stucode: 但你是用index方式 理论上不会有问题 08/23 23:47