爲什麼此設置操作更改集s
?它不爲同一運營商的整數(按位)版本相同的方式工作....爲什麼Python「&=」set操作符的操作與「&=」整數操作的操作不同?
設置操作&=
(改變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
它與frozensets預期的一樣。所以,這個操作並不是試圖在原地修改set u(與聲明開頭的s相同的對象),否則會導致異常。它試圖做什麼? –
列表顯示與&=相同的行爲。元組導致TypeError。 –