&在python是什么意思_Python a&=b是什么意思?

解释

iand中的i意味着in-place,因此它是&的在位运算符。^{{cd4>如果实现了x = x & y相同。在

内置示例,集合:

它主要用于更新内置集合类型的交集:>>> a = set('abc')

>>> a &= set('cbe')

>>> a

set(['c', 'b'])

这与:

^{pr2}$

它非常类似于调用set.intersection_update方法,并将在控制流中使用,就像对任何对象或变量进行就地更新一样(如果对象是不可变的)。在

未实现的内置示例

不太常用的不可变冻结集对象将在就地更新时在内存中被替换,变量名将指向内存中的新对象。在>>> a = frozenset('abc')

>>> a &= set('bce')

>>> a

frozenset({'c', 'b'})

在本例中,因为frozenset没有实现__iand__方法>>> a = frozenset('abc')

>>> a.__iand__(set('cbe'))

Traceback (most recent call last):

File "", line 1, in

a = frozenset('abc'); a.__iand__(set('cbe'))

AttributeError: 'frozenset' object has no attribute '__iand__'

它与a = a & set('bce')

*(我说几乎是,因为如果你检查字节码,你会发现底层实现对集合和冻结集的处理是一样的,即使冻结集没有__iand__,而集合有,因为至少对于编译的函数来说,每次调用INPLACE_AND。)

内置示例,二进制标志:

与集合类似,我们可以使用&=来更新二进制选项标志的交集,其中True的值是1。下面,我们证明二进制数1110和{}的“binary AND”(类似于交集)是1010:>>> option_flags = int('1110', 2)

>>> option_flags

14

>>> option_flags &= int('1011', 2)

>>> option_flags

10

>>> bin(option_flags)

'0b1010'

由于int对象是不可变的,就像frozenset示例一样,这实际上只会将变量option_flags重新分配给新计算的值。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值