【发布时间】:2020-08-21 10:39:21
【问题描述】:
我写了一个简单的代码,两个交换列表中的两个项目,使用非常基本的:
a, b = b, a
代码如下所示:
nums[i], nums[nums[i] - 1] = nums[nums[i] - 1], nums[i]
上述交换导致无限循环,其中项目在列表中重复,因此无法交换。但将其修改为以下工作:
nums[nums[i] - 1], nums[i] = nums[i], nums[nums[i] - 1]
由于交换变量的顺序,交换是否不起作用。
如果是这样,它的逻辑如何?我错过了什么?
【问题讨论】:
-
分配按从左到右的顺序进行。分配给
nums[i]后,nums[nums[i] - 1]不再像原来那样引用相同的列表索引。
标签: python python-3.x list swap