为什么这个集合操作会改变集合
集合操作
s
?对于整数(按位)版本的同一运算符,它的工作方式不同......集合操作
&=
(会改变s
):s = set('abc')
t = set('bcd')
u=s
print u, s, t
u &= t
print u, s, t
结果:
set(['a', 'c', 'b']) set(['a', 'c', 'b']) set(['c', 'b', 'd'])
set(['c', 'b']) set(['c', 'b']) set(['c', 'b', 'd'])
按位运算符 &=
(不改变s
):
s = 7
t = 3
u=s
print u, s, t
u &= t
print u, s, t
结果:
7 7 3
3 7 3
frozenset
尝试一下。 - jonrsharpe&=
,会得到一个TypeError。 - Alex Hall