今天学python,突然发现没有swap函数,那怎么交换两个数呢,难道手写交换,那效率太差了

我们看一下实例

a = 1b= 2a,b=b,aprint(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交换两个值原理_python 两数交换新写法原理相关推荐

  1. python字典值求和_Python两个字典键同值相加的方法总结

    Python字典键同值相加详解 两个字典A = {'a': 1, 'b': 2, 'c': 3}, B = {'b': 4, 'c': 6, 'd': 8} 要合并这两个字典,键值同则相加. 两个字典 ...

  2. python两个元组相加_Python两个字典键同值相加的几种方法

    Python中,如何合并两个键相同,值为元祖类型的字典? dicxs={"李明":("男",19), "杨柳":("女" ...

  3. 通过python利用哈希值实现比较两个文件的一致性

    背景 近来学习到python的内置函数hash(),深入发现通过python的哈希值可以做很多的事情,最典型的可能就是文件加密了,在我们现实生活中大约有如下一些用途: 加密网站注册用户的密码. 网站用 ...

  4. python字典取键值对_python 获取字典键值对的实现

    获 得 字 典 键. 值 的 函 数 有: items/ iteritems/ keys/ iterkeys/ values/ itervalues 通 过 以 上 这 些 函 数 得 到 的 是 键 ...

  5. python两个字典合并、相同key值保留_Python两个字典key相同的值组成新字典?

    按照你的要求编写的多个字典key相同的值组成新字典的Python程序如下 def hebing(dic1,dic3): for key in dic1: if dic3.get(key): dic3[ ...

  6. python两列字符串合并_python两列字符串如何合并?

    python两列字符串如何合并?,字符串,变量,方法,语句,就没 python两列字符串如何合并? python两列字符串如何合并? python两列字符串合并的方法: 1.在很多情况下,我们都需要合 ...

  7. python连接池原理_python redis之连接池的原理

    python redis之连接池的原理 什么是连接池 通常情况下, 当我们需要做redis操作时, 会创建一个连接, 并基于这个连接进行redis操作, 操作完成后, 释放连接, 一般情况下, 这是没 ...

  8. python concat去除重复值语句_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...

    摘要 在进行数据分析时,我们经常需要对DataFrame去重,但有时候也会需要只保留重复值. 这里就简单的介绍一下对于DataFrame去重和取重复值的操作. 创建DataFrame 这里首先创建一个 ...

  9. python concat去除重复值语句_Python数据处理从零开始----第二章(pandas)④数据合并和处理重复值...

    目录 第二章(pandas) Python数据处理从零开始----第二章(pandas)④数据合并和处理重复值 ============================================ ...

最新文章

  1. 静态Web开发 JQuery
  2. Spring-data-redis:特性与实例--转载
  3. 为啥八位的计算机可以用补码表示-128
  4. 在asp.net core 下定义统一的入参和出参格式
  5. redis取值偶尔取不到_redis 入门
  6. (03)两个模型的交集、并集、差集
  7. 光谷码农·每日新闻(2019-05-09)
  8. linux下把 python 程序运行的输出结果记录到 log 文件中
  9. testng自定义注解
  10. e盘根目录出现个Msdia80.dll怎么办?
  11. 湖畔大学梁宁:比能力重要1000倍的,是你的底层操作系统,与CSDN伙伴们一起共勉!
  12. 固定IP和自动IP切换bat脚本
  13. 苹果支付在哪里设置_你会用苹果手机吗?这些快捷指令快速设置一下,好用度提升10倍...
  14. 文本处理---行未添加逗号和引号
  15. MacM1-Miniconda相关合集
  16. 计算机师徒结对方案,师徒结对计划
  17. tomcat  简介
  18. 论文精读:GHM:Gradient Harmonized Single-stage Detector
  19. python_dict_好玩游戏的物品清单
  20. python用递归方式实现最大公约数_使用Python求解最大公约数的实现方法

热门文章

  1. 【2021-01-14】navicat使用ssh tunnel、密钥方式连接数据库的问题。错误:Unable to load key - unrecognised cipher name
  2. 求多个数的最小公倍数
  3. 用linux命令清空文件夹,技能包!Linux 下清空或删除大文件内容的 5 种方法
  4. 光电编码器的原理及应用场合_图解编码器应用,推荐收藏
  5. 【快速入门Linux】8_Linux命令—系统信息相关命令(时间、磁盘、进程)
  6. 15_python基础—文件操作
  7. ROS中阶笔记(一):机器人系统设计—ROS系统下连接外部传感器
  8. python数据库自动对接_如何使用Python连接MySQL建立自动化监控报表
  9. python 哪些比赛项目_python能做什么项目
  10. html页面css代码写在哪里,HTML、CSS代码书写规范