[英]What is the difference between set symmetric difference and set symmetric difference with mutation in Python 2.7?
該集合的以下兩個實現之間有什么區別?
就我而言,他們都給出了相同的結果。
s = set([1, 2, 3, 4, 5])
s.symmetric_difference_update(set ([5, 6, 7]))
print s
set([1, 2, 3, 4, 6, 7]) #OUTPUT
print set([1, 2, 3, 4, 5]).symmetric_difference(set([5, 6, 7]))
set([1, 2, 3, 4, 6, 7]) #OUTPUT
他們沒有給出相同的結果。 您不是在做同一件事。 嘗試這個:
s = set([1, 2, 3, 4, 5])
s.symmetric_difference_update(set ([5, 6, 7]))
print s
與這個:
s = set([1, 2, 3, 4, 5])
s.symmetric_difference(set ([5, 6, 7]))
print s
或者,嘗試以下操作:
print set([1, 2, 3, 4, 5]).symmetric_difference_update(set([5, 6, 7]))
與這個:
print set([1, 2, 3, 4, 5]).symmetric_difference(set([5, 6, 7]))
現在看到區別了嗎?
如Python標准庫文檔中所述 , s.symmetric_difference_update(otherset)
使用兩個集合之間的對稱差異更新原始集合,而s.symmetric_difference(otherset)
僅返回對稱差異。 相比:
In [1]: s = set([1, 2, 3, 4, 5])
In [2]: s.symmetric_difference(set ([5, 6, 7]))
Out[2]: {1, 2, 3, 4, 6, 7}
In [3]: print s
set([1, 2, 3, 4, 5])
在這種情況下, s
不變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.