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

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

信息:我是一名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 python-3.x list sorting swap
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分配给第二个变量。

因此,通过对用户隐藏的打包和解包来获得交换值。

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