从元素本身生成索引的Python交换数组不起作用

问题描述 投票:0回答:1

以下python交换不起作用,问题是为什么!

nums[i], nums[nums[i]-1] = nums[nums[i]-1],  nums[i]

python arrays swap
1个回答
0
投票

这里是一个示例,说明该语句为什么不起作用。

>>> 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上,因此根本没有交换发生。

© www.soinside.com 2019 - 2024. All rights reserved.