簡體   English   中英

Python 2.7中的集合對稱差異和帶有突變的集合對稱差異有什么區別?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM