我是否正确交换列表中的元素?

Am I swapping elements from a list correctly?

信息:我是一名正在学习如何编码的 HS 学生,我不知道有谁可以为我检查我的逻辑,所以我正在使用 Stack Overflow 的好心人来帮助检查我的想法。

真题:我正在学习排序,我想知道我是否真正理解交换过程中发生的事情。

my_list = [1, 2]

my_list[0], my_list[1] = my_list[1], my_list[0]

print(my_list)

Output:
[2, 1]

这就是我认为的作用。我将 my_list 的第 0 个位置设置为 my_list 的第 1 个位置,基本上就是 "Hey, trade values!"。然后我对 my_list 的第一个位置做同样的事情,接受我设置它 = 我列表的第 0 个位置。我认为这是做什么的,如果我错了请纠正我,那就是将第 0 个位置的值设置为第 1 个位置的值,并将第 1 个位置的值设置为第 0 个位置的值位置。这反过来又改变了列表元素的值,使它们看起来好像交换了位置。这是正确的还是我想得太多了?我知道这听起来像是基本的作业,但我想确保我完全理解交换的概念。

实际问题的答案。交换期间发生的事情如下。

  1. Python 计算 = 运算符右侧的内容。即 Python 得到两个值 my_list[1]my_list[0],即 21。然后 Python 将值打包成元组 (2, 1).

  2. Python 将元组 (2, 1) 分配给 = 运算符左侧的变量。

  3. = 运算符左侧有 2 个变量并且元组 (2, 1) 恰好有 2 个项目。所以 Python 解压元组然后将 2 分配给第一个变量(恰好是列表 my_list 的第一个元素)并将 1 分配给第二个变量。

因此交换值是通过对用户隐藏的打包和拆包获得的。