|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这是第一次代码:```
s = [1, 2, 3, 4]
s[0], s[s.index(2)] = s[s.index(2)], s[0]
print(s)
这时输出的列表顺序是不变的
这是第二次代码:```
s = [1, 2, 3, 4]
s[0], s[1] = s[1], s[0]
print(s)·```
这时输出的列表顺序改变了
想请教为什么会出现这种情况?
本帖最后由 傻眼貓咪 于 2022-5-16 10:16 编辑
Python 语法让大家方便,但由于太方便,导致很多程序员迷失在代码里,因为完全看不到底层运作。
例子:
a = 13
b = 5
a, b = b, a
这里没有问题吧?纯粹交换值
如果把它写成更容易读呢?
t = a
a = b
b = t
同理,以你的代码为例:
s = [1, 2, 3, 4]
s[0], s[s.index(2)] = s[s.index(2)], s[0]
可以写成:
t = s[0]
s[0] = s[s.index(2)] # 这时 2 的位置已改变
s[s.index(2)] = t # 变回原来的样子
|
|