在Python中调换列表中的元素

列表是 Python 中的一个可变 (changeable) 数据结构,它存储了一个有序的项目集合。在这篇文章中,我们将看一下交换列表中的元素的几种不同方法。

在 Python 中使用赋值操作符来交换列表中的元素

一个最简单和最常用的交换列表元素的方法是通过赋值运算符和逗号。

在下面的代码中,我们创建了一个列表,并使用赋值运算符交换了索引1 和索引3 的值,该运算符将把赋值运算符右边的相应值分配给左边的变量。

示例代码:

#Python 3.x
list = [6, 2, 7, 8]
print('list before swapping:', list)
list[1], list[3] = list[3], list[1]
print('list after swapping:', list)

输出:

#Python 3.x
list before swapping: [6, 2, 7, 8]
list after swapping: [6, 8, 7, 2]

使用赋值运算符,我们可以一次只交换两个变量的值。如果我们想交换多个数值,我们可以用一个循环来完成。

在下面的代码中,变量ij 将持有要交换的元素的索引。索引03 的值将在第一次迭代中交换,而索引46 的元素将在第二次迭代中交换。

示例代码:

#Python 3.x
list = [6, 2, 7, 8, 5, 9, 10, 3, ]
print('list before swapping:', list)
for i,j in [(0,3),(4,6)]:
    list[i], list[j] = list[j], list[i]
print('list after swapping:', list)

输出:

#Python 3.x
list before swapping: [6, 2, 7, 8, 5, 9, 10, 3]
list after swapping: [8, 2, 7, 6, 10, 9, 5, 3]

在 Python 中使用第三个变量来交换列表中的元素

如果我们不直接使用第一种方法交换元素,我们总是需要一个第三变量。第三个变量将暂时保存一个索引的值,因为在交换之后,我们会在实际的索引中丢失它。

在下面的代码中,我们已经将索引1 的值分配给了temp 变量,将索引3 分配给了索引1 。然后,我们将temp 的值(索引1 的存储值)分配给索引3

示例代码:

#Python 3.x
list = [6, 2, 7, 8]
print('list before swapping:', list)
temp = list[1]
list[1] = list[3]
list[3] = temp
print('list after swapping:', list)

输出:

#Python 3.x
list before swapping: [6, 2, 7, 8]
list after swapping: [6, 8, 7, 2]

在Python中使用pop() 函数来交换一个列表的元素

带有列表的pop() 函数从一个指定的索引中取出并返回值。在下面的代码中,我们使用它们的索引从列表中取出两个元素,并将返回的值存储到两个变量中。

这里很重要的一点是,我们使用了索引1 来删除值2 ,但我们使用了索引2 来清除值8 。因为在我们从列表中弹出一个项目后,它将有总共三个元素。

所以8 的索引将是2 。最后,我们通过以相反的顺序指定索引,将这些值再次插入到列表中。

示例代码:

#Python 3.x
list = [6, 2, 7, 8]
print('list before swapping:', list)
val1 = list.pop(1)
val2 = list.pop(2)
list.insert(1, val2)
list.insert(2, val1)
print('list after swapping:', list)

输出:

#Python 3.x
list before swapping: [6, 2, 7, 8]
list after swapping: [6, 8, 7, 2]