You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何根据条件优雅交换变量值(无需临时变量)

无需临时变量的变量交换优雅实现方案

已知a=5且b=6,当a < b时需要交换二者的值。目前我可通过创建临时变量实现,代码如下:

if a < b:
   a_temp = b
   b_temp = a
a = a_temp
b = b_temp

请问是否存在无需创建临时变量的优雅实现方式?


首选方案:Python 元组解包交换

这是Python里最简洁、可读性最高的写法,完全不需要临时变量:

if a < b:
    a, b = b, a

Python会自动将右侧的b, a打包成元组,再解包赋值给左侧的a, b,底层处理不需要手动声明临时变量,逻辑清晰还一行搞定。

补充:其他语言常用的算术交换(Python不推荐)

如果是在不支持解包的语言里,可利用算术运算实现,但Python里完全没必要用这种写法(可读性差,仅适用于数值类型):

if a < b:
    a = a + b
    b = a - b
    a = a - b

⚠️ 注意:这种方法存在溢出风险(Python的int无溢出,但其他语言可能有),且如果变量不是数值类型就完全失效。

顺便修正你原代码的bug

你当前的临时变量写法有问题:当a >= b时,a_temp和b_temp未被定义,执行后面的a = a_temp会直接报错。正确的临时变量写法应该把赋值逻辑都放到if块内:

if a < b:
    temp = a
    a = b
    b = temp

内容的提问来源于stack exchange,提问作者Lopez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:10:30