我有以下代码:Array = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]for c in range(1, len(Array)): if(Array[c]==-1): continue temp = Array[c] i = c d = c-1 while(d>=0): if(Array[d]==-1): d-=1 continue if(temp>=Array[d]): break Array[i] = Array[d] i = d d-=1 Array[i] = temp当我按编写的方式运行代码时,最终的Array是:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]但是,当我将最后一行更改为“ Array [i] = Array [c]”而不是“ Array [i] = temp”时,最终的Array为:[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]这对我来说没有意义。如果“ temp”是Array [c],为什么更改该行会有所不同?
1 回答
开满天机
TA贡献1786条经验 获得超13个赞
temp
获取的值Array[c]
,但是Array[c]
第一次执行Array[i] = Array[d]
(自i==c
最初以来)后,存储位置将被另一个值覆盖。temp
是否保留了初始值,因此即使Array[c]
其已被重置,也可以在以后使用。
添加回答
举报
0/150
提交
取消