[问题] 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