数据交换的怪异
大家可能经常用a,b=b,a这种python技巧来直接交换两个数据的值,但是,大家知道这个过程是怎样的嘛
我们不妨探讨一下,在数组中,我们要怎么交换两个数据
a[a[i]-1],a[i] = a[i],a[a[i]-1]
直接说一下结论好了,首先他会就算等式右边的2个值并保存下来,然后再逐个令a[a[i]-1]=a[i],a[i]=a[a[i]-1]
这是没有问题的,但是如果我们令
a[i],a[a[i]-1] = a[a[i]-1],a[i]
我们这样就换就会发现,因为我们先交换了a[i]的值,所以,a[a[i]-1]已经不是原来的位置了,谨写此篇记录一下