【面试】不使用中间变量,交换两个变量a和b的值

点评:典型的送人头的题目,通常交换两个变量需要借助一个中间变量,如果不允许使用中间变量,在其他编程语言中可以使用异或运算的方式来实现交换两个变量的值,但是Python中有更为简单明了的做法。

方法一:

a = a ^ b

b = a ^ b

a = a ^ b

方法二:

a, b = b, a

    扩展:需要注意,a, b = b, a这种做法其实并不是元组解包,虽然很多人都这样认为。Python字节码指令中有ROT_TWO指令来支持这个操作,类似的还有ROT_THREE,对于3个以上的元素,如a, b, c, d = b, c, d, a,才会用到创建元组和元组解包。想知道你的代码对应的字节码指令,可以使用Python

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-15 22:24:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-15 22:24:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-15 22:24:03       82 阅读
  4. Python语言-面向对象

    2023-12-15 22:24:03       91 阅读

热门阅读

  1. hive 常见存储格式和应用场景

    2023-12-15 22:24:03       55 阅读
  2. 树莓派部署Home Assistant教程

    2023-12-15 22:24:03       54 阅读
  3. 【.NET Core】Linq查询运算符(三)

    2023-12-15 22:24:03       44 阅读
  4. 矩阵理论及其应用邱启荣习题3.5题解

    2023-12-15 22:24:03       47 阅读
  5. Worker-Thread设计模式

    2023-12-15 22:24:03       61 阅读
  6. urllib.request --- 用于打开 URL 的可扩展库

    2023-12-15 22:24:03       51 阅读
  7. antd TreeSelect 组件如何获取父级ID

    2023-12-15 22:24:03       56 阅读
  8. jvm调优参数常用命令总结

    2023-12-15 22:24:03       64 阅读
  9. 安装dhg

    安装dhg

    2023-12-15 22:24:03      67 阅读