Bu ayar işlemi neden s
olarak ayarlandı? BuPython "& =" kümesi operatörü neden "& =" tamsayı işleminden farklı davranıyor?
Seti Operasyonu &=
(s
değiştirir) .... aynı operatörün tamsayı (bitsel) versiyonu için aynı şekilde çalışmaz:
s = set('abc')
t = set('bcd')
u=s
print u, s, t
u &= t
print u, s, t
sonuçları:
set(['a', 'c', 'b']) set(['a', 'c', 'b']) set(['c', 'b', 'd'])
set(['c', 'b']) set(['c', 'b']) set(['c', 'b', 'd'])
Bitsel işlem &=
(s
değiştirmez):
Sonuç:
7 7 3
3 7 3
Takımlar değişebilir ve tamsayılar değildir. Bir 'frozenset' ile deneyin. – jonrsharpe
Frozensets ile beklendiği gibi çalışır. Bu nedenle, işlem, set u'yu (ifadenin başlangıcındaki s ile aynı nesne) yerinde değiştirmeye çalışmaz veya bir istisna oluşturmuş olur. Ne yapmaya çalışıyor? –
Listeler aynı takımla ilgili setleri gösterir for & =. Tupllar bir TypeError'a sebep olur. –