2017-01-31 34 views
1

Set()和{}似乎給出了非常相似的行爲,除了混淆集([])和{}之外。在下面的比較中,爲什麼最後一個是False?爲什麼Python設置([])不等於{}?

>>> set([1,2,3])=={1,2,3} 
True 
>>> set([1,2,3])==set([1,2,3]) 
True 
>>> {1,2,3}=={1,2,3} 
True 
>>> set([])==set([]) 
True 
>>> {}=={} 
True 
>>> set([])=={} 
False 
+6

因爲'{}'創建了一本字典! – MSeifert

+0

,因爲'type({})'是'dict'。 –

+0

現在很明顯了:( – cammil

回答

6

由於{}字面保留用於空dict,而不是空集

2

由於{}創建dict

In[49]: type({}) 
Out[49]: dict 
0

要創建一個空集,您只能使用set()

集合是唯一元素的集合,您無法對它們進行排序。列表是有序的元素序列,值可以重複。字典將鍵映射到值,鍵必須是唯一的。 Set和字典鍵也必須滿足其他限制,以便Python可以有效地跟蹤它們並知道它們是否將保持唯一。

相關問題