以下python交换不起作用,问题是为什么!
nums[i], nums[nums[i]-1] = nums[nums[i]-1], nums[i]
这里是一个示例,说明该语句为什么不起作用。
>>> nums=[3,2,3,4,6,5]
>>> i=4
>>> nums[i],nums[nums[i]-1] = nums[nums[i]-1], nums[i]
>>> nums
[3, 2, 3, 4, 6, 5]
当我为4时,交换的右边变成元组(5,6),它首先将5分配给nums [4],然后nums [nums [i] -1]实际上是nums [5-1 ]返回到nums [4]并分配值6。
所有分配都发生在索引4上,因此根本没有交换发生。