2024-05-16 16:18:51 发布
网友
我使用Python有段时间了,我第一次从这个link碰到了这个操作符“^=”。在
def solution(A): result = 0 for number in A: result ^= number return result
当然,我在谷歌上查了一下,但我似乎找不到这个接线员。它有什么作用?在
它是异或。https://docs.python.org/3/reference/expressions.html#binary-bitwise-operations 例如:
9 ^ 1
输出:
因为在二进制中9是101,那么{}就是{}。 异或运算意味着:
9
101
101 001 output: 100 #or 8 in natural number
与^=相关并在窗帘后面被称为__ixor__。与^相关的特殊方法是__xor__。他们不必表现得一样。在
^=
__ixor__
^
__xor__
^{}是^{}的Augmented Assignment变体,可能时执行就地操作,当__ixor__未实现时,返回到__xor__。在
原则上,该方法的返回值完全取决于__ixor__的实现,但也有一些常见的用例。在
对于两个集合,a ^= b计算集合a和b(两个集合中正好有一个集合中的所有元素)的对称差,并且变异a。在
a ^= b
a
b
>>> a = {1, 2, 3} >>> b = {1, 4, 5} >>> reference = a >>> >>> a ^= b >>> a {2, 3, 4, 5} >>> reference {2, 3, 4, 5}
注意,a在的地方发生了突变,因此a和{}都指向内存中相同的set对象{}。因此,^=的行为与本例中的^不同,后者构建了一个新的集合,如下所示。在
set
请注意,a = a^b已经构建了一个新的集合,名称a已被重新分配到,并且reference仍然引用原始集{1, 2, 3}。在
a = a^b
reference
{1, 2, 3}
对于内建不可变的类型(如整数),a ^= b实际上相当于a = a^b。由于整数没有__ixor__方法,Python回到使用__xor__的方法。 在整数的情况下,a ^= b执行一个位不相等的操作,并将名称a重新分配给该计算的结果。在
演示:
>>> a = 5 >>> b = 6 >>> a^b 3
说明:
101 (5 decimal) XOR 110 (6 decimal) ------------------- 011 (3 decimal)
The ^ operator yields the bitwise XOR (exclusive OR) of its arguments, which must be integers.
https://docs.python.org/3/reference/expressions.html#binary-bitwise-operations
与所有其他_=运算符一样,^=将结果赋回变量:a =^ b与a = a ^ b相等。在
_=
a =^ b
a = a ^ b
作为一个函数,它是__ixor__(或^{}),对于非整数类型可能有不同的行为。在
它是异或。https://docs.python.org/3/reference/expressions.html#binary-bitwise-operations 例如:
输出:
^{pr2}$因为在二进制中}就是{}。
异或运算意味着:
9
是101
,那么{与
^=
相关并在窗帘后面被称为__ixor__
。与^
相关的特殊方法是__xor__
。他们不必表现得一样。在^{} 是^{} 的Augmented Assignment变体,可能时执行就地操作,当
__ixor__
未实现时,返回到__xor__
。在原则上,该方法的返回值完全取决于
__ixor__
的实现,但也有一些常见的用例。在对于两个集合,
a ^= b
计算集合a
和b
(两个集合中正好有一个集合中的所有元素)的对称差,并且变异a
。在注意,}都指向内存中相同的}。因此, ,如下所示。在
^{pr2}$a
在的地方发生了突变,因此a
和{set
对象{^=
的行为与本例中的^
不同,后者构建了一个新的集合请注意,
a = a^b
已经构建了一个新的集合,名称a
已被重新分配到,并且reference
仍然引用原始集{1, 2, 3}
。在对于内建不可变的类型(如整数),
a ^= b
实际上相当于a = a^b
。由于整数没有__ixor__
方法,Python回到使用__xor__
的方法。 在整数的情况下,a ^= b
执行一个位不相等的操作,并将名称a
重新分配给该计算的结果。在演示:
说明:
https://docs.python.org/3/reference/expressions.html#binary-bitwise-operations
与所有其他
_=
运算符一样,^=
将结果赋回变量:a =^ b
与a = a ^ b
相等。在作为一个函数,它是} ),对于非整数类型可能有不同的行为。在
__ixor__
(或^{相关问题 更多 >
编程相关推荐