x, y, z = z, y, x值的互相转换原理
如题,想知道x, y, z = z, y, x的执行顺序,原理是什么? temp = [x,y,z]temp2 = [::-1]
x = temp2[0]
y = temp2[1]
z = temp2[2] y不动,xz互换
原理是元组的拆包,这里 x, y, z 实际上就是元组 (x, y, z)
而这里赋值就是将 x, y, z 同时赋值上 z, y, x 的值
wp231957 发表于 2021-7-9 21:09
y不动,xz互换
那原理就是python自己私下创建了一个temp变量然后把x和z的值借助temp互换了一下?还是说是其他原理? Twilight6 发表于 2021-7-9 21:09
原理是元组的拆包,这里 x, y, z 实际上就是元组 (x, y, z)
而这里赋值就是将 x, y, z 同时赋值上 z ...
是新创建了一个元组,然后再按照给定顺序给新的xyz赋值吗? Twilight6 发表于 2021-7-9 21:04
原理是元组的拆包,这里 x, y, z 实际上就是元组 (x, y, z)
而这里赋值就是将 x, y, z 同时赋值上 z ...
可以理解为
x, y, z = 3, 4, 5
temp1 =
x = temp1
y = temp1
z = temp1
temp2 =
嘛?
有点不明白在 x = temp1 之后,temp1 也就是 里的 x 的值不是已经变成 temp1 也就是 y 的值也就是4了,之后 y = temp1 为什么还是等于x一开始的值3呢?不知道我有没有说清楚 QAQ ciccee 发表于 2021-9-29 22:41
可以理解为
嘛?
自己有点搞明白了, = 是 lst1 包含 item x, y, z 的地址, 其中 x 的值 3 存在另一个地址 lst1 里. = 左边的 x, y, z 是lst2 包含新的 item x, y, z 的地址(和 lst1 的 x, y, z 存在不同的地址,互不干扰),其中 等号左边的 x 的值 指向了 lst1 里的 y 的值 lst1 也就是 4。
学习资料:https://www.cnblogs.com/Eva-J/p/5534037.html
页:
[1]