python 两数交换新写法原理
Posted 极客海
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 两数交换新写法原理相关的知识,希望对你有一定的参考价值。
今天学python,突然发现没有swap函数,那怎么交换两个数呢,难道手写交换,那效率太差了
我们看一下实例
a = 1 b = 2 a,b = b,a print(a,b)
其实很简单的原理,然而我却琢磨了半天,可能陷入了过程化编程的思维里,一直纠结a和b到底谁先赋值,怎么交换了,想了半天百度一下,瞬间清晰了
个人想法:
变量只是存储一个值,我们用用新变量指向另一个变量时,其实指向的是另一个变量存储的值
那么这里就可以这么理解了,a,b = b,a 其实变相的给前面 a,b 两个变量他们的指向的值
那么 a = b b = a 为何又不行呢
因为 前面 a = b 时,变量 a 已经指向了b 的值,而后面 b = a 则把a指向的值又传给了b
导致 a = b
其实 a,b = b,a 的运行步骤应该是
1、在内存中找到b的值,a的值 例如:b = 1 a = 2
2、重新赋值 a,b = 1,2
以上是关于python 两数交换新写法原理的主要内容,如果未能解决你的问题,请参考以下文章