「一次建立多個集合變數」的情況,的確可以簡化,而且有幾種寫法:
S1 = S2 = S3 = set()
🔸 這行語法是合法的,但請注意:
這是 「同一個 set 物件的多個參考」,三個變數會指向同一個集合!
改變其中一個,其他也會跟著變。
S1.add(10)
print(S2) # 也會有 10!(因為是同一個物件)
如果你不介意用 list 來裝多個集合,可以這樣:
sets = [set() for _ in range(3)]
S1, S2, S3 = sets
✅ 各自獨立
✅ 可延伸到更多集合(比如 10 個)
for i in range(1, 4):
locals()[f'S{i}'] = set()
🔸 雖然可以做到,但比較危險、難維護,通常不建議這樣寫。
寫法 優點 缺點
S1 = set(); S2 = set(); S3 = set() 清楚、最穩定 稍長
S1 = S2 = S3 = set() 最短 ⚠️ 同一個物件,共用內容
[set() for _ in range(3)] 可彈性產生多個獨立集合 要另外存變數名(或拆包)
S1, S2, S3 = [set() for _ in range(3)]
這樣簡潔、清楚,三個都是不同的集合,又不容易出錯。