刷题时遇到的一个奇葩python问题

l        c41  其中有一步大概是把数组中的i交换a[i]的操作,就是[1,0] 交换完变[0,1]这种a[i]==[i]的形式。然后问题来了,当我用a[0], a[a[0]] = a[a[0]], a[0]语句交换后发现交换完了数组还是[1,0]。
        在我印象里a,b = b,a这种写法是原子操作,不涉及顺序问题。检查了半天没找到原因,最后去翻文档,发现这种写法会先计算等号右侧的值生成元组,作为语句执行前的镜像,而在赋值时等号左侧是从左到右逐个进行的,当赋值到a[a[0]]时,a[0]的值已经被改变了,会使用最新的a[0]作为索引。
         解决方式:老老实实用中间变量
全部评论

相关推荐

我的offer呢😡:这不才9月吗,26到明年毕业前能一直找啊,能拿下提前批,转正的,offer打牌的都是有两把刷子的,为什么非要跟他们比。如果别人是9本硕+金牌+好几段大厂实习呢?如果别人是双非通天代呢?如果别人是速通哥呢?,做好自己就行了,我们做不到他们一样提前杀死比赛,但晚点到终点也没啥关系吧
双非应该如何逆袭?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务