Python 列表元素交换不能如期进行

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

我写了一个简单的代码,在一个列表中交换两个项目,使用非常基本的。

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]

是否因为交换变量的顺序而导致交换失败?

如果是,怎么个逻辑法?我到底漏了什么?

python python-3.x list swap
2个回答
0
投票
def swap(index1, index2, list_):
    a, b = list_[index1], list_[index2]
    list_[index1], list_[index2] = b, a
    return list_

可以使用这样的函数,在这里你可以传递你想交换的项目的列表和列表索引,然后它返回包含交换项目的列表。

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