信息:我是一名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个位置,这基本上是在说“嘿,交易价值!”。然后我用my_list的第一个位置做同样的事情,接受我设置它=我的列表的第0个位置。我认为这样做,并纠正我,如果我错了,那就是将第0个位置的值设置为第1个位置的值,并将第1个位置的值设置为第0个值。位置。这反过来改变了列表元素的值,使它看起来好像有交易的地方。这是正确的还是我过度思考?我知道这听起来像基本的任务,但我想确保我完全理解这个交换的概念。
回答实际问题。交换期间发生的事情如下。
=
运算符右侧的内容。那就是Python得到两个值my_list[1]
和my_list[0]
,它们是2
和1
。然后Python将值打包到元组(2, 1)
中。(2, 1)
分配给=
运算符左侧的变量。=
运算符的左侧有2个变量,而元组(2, 1)
正好有2个项目。所以Python解包元组然后将2
分配给第一个变量(恰好是列表my_list
的第一个元素)并将1
分配给第二个变量。因此,通过对用户隐藏的打包和解包来获得交换值。