python中的XOR交换算法?

我试图在python中实现XOR swap.

x,y= 10,20

x,y,x = x^y,x^y,x^y

print('%s , %s'%(x,y))

OUTPUT:

30 , 30

我不是python的新手,但我无法解释这个输出.应该是20,10.

引擎盖下发生了什么?

解决方法:

首先,创建由x ^ y,x ^ y和x ^ y组成的元组.然后将元组解压缩为x,y和x,使得两者都绑定到x ^ y的结果.

拯救自己的头痛,并以Pythonic方式做到:

x, y = y, x
上一篇:Python:count直到列表中的元素是一个元组


下一篇:为什么Python在特定情况下使用百分比运算符支持元组和字典格式?