「已注销」 2021-08-15 17:40 采纳率: 100%
浏览 116
已结题

为啥Python交换两个变量的结果不同?(主要是想知道Python交换两个变量的原理)

例子如下:

a = [0, 2, 1, 3, 5, 6]

b = a[:6]  # 浅复制,生成一个与 a 内容相同的列表

a[1], a[a[1] + 1] = a[a[1] + 1], a[1]  # 第一种交换

b[b[1] + 1], b[1] = b[1], b[b[1] + 1]  # 第二种交换

print("第一种交换方式:", a)
print("第二种交换方式:", b)


运行结果:

第一种交换方式: [0, 3, 1, 3, 2, 6]
第二种交换方式: [0, 3, 1, 2, 5, 6]

  • 写回答

4条回答 默认 最新

  • 关注

    a[1], a[a[1] + 1] = x,y

    等同于

    a[1] = x
    a[a[1] + 1] =y

    先对a[1] 赋值 x
    之后执行a[a[1] + 1] =y时再读取a[1]就是赋值之后的了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 已采纳回答 8月15日
  • 创建了问题 8月15日