不使用中间变量,交换两个变量a和b的值
发布时间:2022-08-22 16:16:50
发布人:wjy
点评:典型的送人头的题目,在其他编程语言中不使用中间变量交换两个变量的值可以使用异或运算,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标准库中dis模块的dis函数来反汇编你的Python代码。